* [Bug target/45258] linkage on -lm and -lpthread should be purged from darwin build
2010-08-11 16:31 [Bug target/45258] New: linkage on -lm and -lpthread should be purged from darwin build howarth at nitro dot med dot uc dot edu
@ 2010-08-11 17:03 ` pinskia at gmail dot com
2010-08-11 17:03 ` [Bug target/45258] New: " Andrew Pinski
` (9 subsequent siblings)
10 siblings, 0 replies; 17+ messages in thread
From: pinskia at gmail dot com @ 2010-08-11 17:03 UTC (permalink / raw)
To: gcc-bugs
------- Comment #1 from pinskia at gmail dot com 2010-08-11 17:03 -------
Subject: Re: New: linkage on -lm and -lpthread should be purged from darwin
build
What about removing those in the driver? This way it works correctly
for other makefiles too?
On Aug 11, 2010, at 9:30 AM, "howarth at nitro dot med dot uc dot edu"
<gcc-bugzilla@gcc.gnu.org> wrote:
> Currently libjava is being improperly linked (PR java/41991) due to
> the
> presence of -lm and -lpthreads on the shared library linkages. This
> causes
> libSystem.dylib to be pushed to the front of the linkage and breaks
> the logic
> used by libgcc_ext. We should add and set defines for
> HAVE_LIBSYSTEM_PTHREADS
> and HAVE_LIBSYSTEM_LIBMATH to configure and use these for
> conditionals in the
> Makefile.am's where appropriate to avoid passing -lm and -lpthread
> on darwin.
>
>
> --
> Summary: linkage on -lm and -lpthread should be purged from
> darwin build
> Product: gcc
> Version: 4.6.0
> Status: UNCONFIRMED
> Severity: normal
> Priority: P3
> Component: target
> AssignedTo: unassigned at gcc dot gnu dot org
> ReportedBy: howarth at nitro dot med dot uc dot edu
> GCC build triplet: *-apple-darwin*
> GCC host triplet: *-apple-darwin*
> GCC target triplet: *-apple-darwin*
>
>
> http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45258
>
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45258
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [Bug target/45258] New: linkage on -lm and -lpthread should be purged from darwin build
2010-08-11 16:31 [Bug target/45258] New: linkage on -lm and -lpthread should be purged from darwin build howarth at nitro dot med dot uc dot edu
2010-08-11 17:03 ` [Bug target/45258] " pinskia at gmail dot com
@ 2010-08-11 17:03 ` Andrew Pinski
2010-08-12 0:55 ` [Bug target/45258] " howarth at nitro dot med dot uc dot edu
` (8 subsequent siblings)
10 siblings, 0 replies; 17+ messages in thread
From: Andrew Pinski @ 2010-08-11 17:03 UTC (permalink / raw)
To: gcc-bugzilla; +Cc: gcc-bugs
What about removing those in the driver? This way it works correctly
for other makefiles too?
On Aug 11, 2010, at 9:30 AM, "howarth at nitro dot med dot uc dot edu"
<gcc-bugzilla@gcc.gnu.org> wrote:
> Currently libjava is being improperly linked (PR java/41991) due to
> the
> presence of -lm and -lpthreads on the shared library linkages. This
> causes
> libSystem.dylib to be pushed to the front of the linkage and breaks
> the logic
> used by libgcc_ext. We should add and set defines for
> HAVE_LIBSYSTEM_PTHREADS
> and HAVE_LIBSYSTEM_LIBMATH to configure and use these for
> conditionals in the
> Makefile.am's where appropriate to avoid passing -lm and -lpthread
> on darwin.
>
>
> --
> Summary: linkage on -lm and -lpthread should be purged from
> darwin build
> Product: gcc
> Version: 4.6.0
> Status: UNCONFIRMED
> Severity: normal
> Priority: P3
> Component: target
> AssignedTo: unassigned at gcc dot gnu dot org
> ReportedBy: howarth at nitro dot med dot uc dot edu
> GCC build triplet: *-apple-darwin*
> GCC host triplet: *-apple-darwin*
> GCC target triplet: *-apple-darwin*
>
>
> http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45258
>
^ permalink raw reply [flat|nested] 17+ messages in thread
* [Bug target/45258] linkage on -lm and -lpthread should be purged from darwin build
2010-08-11 16:31 [Bug target/45258] New: linkage on -lm and -lpthread should be purged from darwin build howarth at nitro dot med dot uc dot edu
2010-08-11 17:03 ` [Bug target/45258] " pinskia at gmail dot com
2010-08-11 17:03 ` [Bug target/45258] New: " Andrew Pinski
@ 2010-08-12 0:55 ` howarth at nitro dot med dot uc dot edu
2010-08-12 0:58 ` howarth at nitro dot med dot uc dot edu
` (7 subsequent siblings)
10 siblings, 0 replies; 17+ messages in thread
From: howarth at nitro dot med dot uc dot edu @ 2010-08-12 0:55 UTC (permalink / raw)
To: gcc-bugs
------- Comment #2 from howarth at nitro dot med dot uc dot edu 2010-08-12 00:54 -------
Created an attachment (id=21459)
--> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=21459&action=view)
proposed patch to add and use remove-outfile
The proposed patch implements remove-outfile to parse out -lm and -lpthread
from LINK_SPEC in darwin.h.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45258
^ permalink raw reply [flat|nested] 17+ messages in thread
* [Bug target/45258] linkage on -lm and -lpthread should be purged from darwin build
2010-08-11 16:31 [Bug target/45258] New: linkage on -lm and -lpthread should be purged from darwin build howarth at nitro dot med dot uc dot edu
` (2 preceding siblings ...)
2010-08-12 0:55 ` [Bug target/45258] " howarth at nitro dot med dot uc dot edu
@ 2010-08-12 0:58 ` howarth at nitro dot med dot uc dot edu
2010-08-12 3:41 ` [Bug target/45258] linkage on -ldl, " howarth at nitro dot med dot uc dot edu
` (6 subsequent siblings)
10 siblings, 0 replies; 17+ messages in thread
From: howarth at nitro dot med dot uc dot edu @ 2010-08-12 0:58 UTC (permalink / raw)
To: gcc-bugs
------- Comment #3 from howarth at nitro dot med dot uc dot edu 2010-08-12 00:57 -------
Note that while the proposed patch properly parses out -lm and -lpthread from
linkages done with the compiler, this is insufficient to solve the problems
with libjava. The hard coded use of -lm in libjava/Makefile.am has to be fixed
as well since this links directly with ld via libtool.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45258
^ permalink raw reply [flat|nested] 17+ messages in thread
* [Bug target/45258] linkage on -ldl, -lm and -lpthread should be purged from darwin build
2010-08-11 16:31 [Bug target/45258] New: linkage on -lm and -lpthread should be purged from darwin build howarth at nitro dot med dot uc dot edu
` (3 preceding siblings ...)
2010-08-12 0:58 ` howarth at nitro dot med dot uc dot edu
@ 2010-08-12 3:41 ` howarth at nitro dot med dot uc dot edu
2010-08-12 3:42 ` howarth at nitro dot med dot uc dot edu
` (5 subsequent siblings)
10 siblings, 0 replies; 17+ messages in thread
From: howarth at nitro dot med dot uc dot edu @ 2010-08-12 3:41 UTC (permalink / raw)
To: gcc-bugs
------- Comment #4 from howarth at nitro dot med dot uc dot edu 2010-08-12 03:41 -------
Opps. Forgot about -ldl.
--
howarth at nitro dot med dot uc dot edu changed:
What |Removed |Added
----------------------------------------------------------------------------
Summary|linkage on -lm and -lpthread|linkage on -ldl, -lm and -
|should be purged from darwin|lpthread should be purged
|build |from darwin build
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45258
^ permalink raw reply [flat|nested] 17+ messages in thread
* [Bug target/45258] linkage on -ldl, -lm and -lpthread should be purged from darwin build
2010-08-11 16:31 [Bug target/45258] New: linkage on -lm and -lpthread should be purged from darwin build howarth at nitro dot med dot uc dot edu
` (4 preceding siblings ...)
2010-08-12 3:41 ` [Bug target/45258] linkage on -ldl, " howarth at nitro dot med dot uc dot edu
@ 2010-08-12 3:42 ` howarth at nitro dot med dot uc dot edu
2010-08-12 4:01 ` howarth at nitro dot med dot uc dot edu
` (4 subsequent siblings)
10 siblings, 0 replies; 17+ messages in thread
From: howarth at nitro dot med dot uc dot edu @ 2010-08-12 3:42 UTC (permalink / raw)
To: gcc-bugs
------- Comment #5 from howarth at nitro dot med dot uc dot edu 2010-08-12 03:42 -------
Created an attachment (id=21466)
--> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=21466&action=view)
final patch to add remove-outfile support for darwin.
--
howarth at nitro dot med dot uc dot edu changed:
What |Removed |Added
----------------------------------------------------------------------------
Attachment #21459|0 |1
is obsolete| |
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45258
^ permalink raw reply [flat|nested] 17+ messages in thread
* [Bug target/45258] linkage on -ldl, -lm and -lpthread should be purged from darwin build
2010-08-11 16:31 [Bug target/45258] New: linkage on -lm and -lpthread should be purged from darwin build howarth at nitro dot med dot uc dot edu
` (5 preceding siblings ...)
2010-08-12 3:42 ` howarth at nitro dot med dot uc dot edu
@ 2010-08-12 4:01 ` howarth at nitro dot med dot uc dot edu
2010-08-12 4:03 ` howarth at nitro dot med dot uc dot edu
` (3 subsequent siblings)
10 siblings, 0 replies; 17+ messages in thread
From: howarth at nitro dot med dot uc dot edu @ 2010-08-12 4:01 UTC (permalink / raw)
To: gcc-bugs
------- Comment #6 from howarth at nitro dot med dot uc dot edu 2010-08-12 04:00 -------
Created an attachment (id=21467)
--> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=21467&action=view)
patch to eliminate remaining -lm and -lpthread usage in libjava build
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45258
^ permalink raw reply [flat|nested] 17+ messages in thread
* [Bug target/45258] linkage on -ldl, -lm and -lpthread should be purged from darwin build
2010-08-11 16:31 [Bug target/45258] New: linkage on -lm and -lpthread should be purged from darwin build howarth at nitro dot med dot uc dot edu
` (6 preceding siblings ...)
2010-08-12 4:01 ` howarth at nitro dot med dot uc dot edu
@ 2010-08-12 4:03 ` howarth at nitro dot med dot uc dot edu
2010-08-12 4:12 ` howarth at nitro dot med dot uc dot edu
` (2 subsequent siblings)
10 siblings, 0 replies; 17+ messages in thread
From: howarth at nitro dot med dot uc dot edu @ 2010-08-12 4:03 UTC (permalink / raw)
To: gcc-bugs
------- Comment #7 from howarth at nitro dot med dot uc dot edu 2010-08-12 04:02 -------
The combination of the remove_outfile.diff and libjava_lm_lpthread_cleanup.diff
patches eliminates the incorrect linkage position of libSystem in the libjava
shared libraries on darwin. Will regression test next on x86_64-apple-darwin10.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45258
^ permalink raw reply [flat|nested] 17+ messages in thread
* [Bug target/45258] linkage on -ldl, -lm and -lpthread should be purged from darwin build
2010-08-11 16:31 [Bug target/45258] New: linkage on -lm and -lpthread should be purged from darwin build howarth at nitro dot med dot uc dot edu
` (7 preceding siblings ...)
2010-08-12 4:03 ` howarth at nitro dot med dot uc dot edu
@ 2010-08-12 4:12 ` howarth at nitro dot med dot uc dot edu
2010-08-12 5:52 ` howarth at nitro dot med dot uc dot edu
2010-08-12 11:23 ` howarth at nitro dot med dot uc dot edu
10 siblings, 0 replies; 17+ messages in thread
From: howarth at nitro dot med dot uc dot edu @ 2010-08-12 4:12 UTC (permalink / raw)
To: gcc-bugs
------- Comment #8 from howarth at nitro dot med dot uc dot edu 2010-08-12 04:12 -------
These patches also appear to clean up the linkages on libstdc++.6.dylib and
libgfortran.3.dylib so that now libSystem is properly at the end of the
linkage. It will be interesting to see if these patches help eliminate the
random failures I have seen with...
FAIL: tr1/2_general_utilities/shared_ptr/thread/default_weaktoshared.cc
execution test
in the libstdc++ testsuite.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45258
^ permalink raw reply [flat|nested] 17+ messages in thread
* [Bug target/45258] linkage on -ldl, -lm and -lpthread should be purged from darwin build
2010-08-11 16:31 [Bug target/45258] New: linkage on -lm and -lpthread should be purged from darwin build howarth at nitro dot med dot uc dot edu
` (8 preceding siblings ...)
2010-08-12 4:12 ` howarth at nitro dot med dot uc dot edu
@ 2010-08-12 5:52 ` howarth at nitro dot med dot uc dot edu
2010-08-12 11:23 ` howarth at nitro dot med dot uc dot edu
10 siblings, 0 replies; 17+ messages in thread
From: howarth at nitro dot med dot uc dot edu @ 2010-08-12 5:52 UTC (permalink / raw)
To: gcc-bugs
------- Comment #9 from howarth at nitro dot med dot uc dot edu 2010-08-12 05:52 -------
The remove_outfile.diff patch has the additional advantage of also eliminating
the gcc.dg/torture/builtin-math-7.c failures.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45258
^ permalink raw reply [flat|nested] 17+ messages in thread
* [Bug target/45258] linkage on -ldl, -lm and -lpthread should be purged from darwin build
2010-08-11 16:31 [Bug target/45258] New: linkage on -lm and -lpthread should be purged from darwin build howarth at nitro dot med dot uc dot edu
` (9 preceding siblings ...)
2010-08-12 5:52 ` howarth at nitro dot med dot uc dot edu
@ 2010-08-12 11:23 ` howarth at nitro dot med dot uc dot edu
10 siblings, 0 replies; 17+ messages in thread
From: howarth at nitro dot med dot uc dot edu @ 2010-08-12 11:23 UTC (permalink / raw)
To: gcc-bugs
------- Comment #10 from howarth at nitro dot med dot uc dot edu 2010-08-12 11:23 -------
Posted patches to http://gcc.gnu.org/ml/gcc-patches/2010-08/msg00886.html and
http://gcc.gnu.org/ml/gcc-patches/2010-08/msg00887.html. Testsuite results
posted
at http://gcc.gnu.org/ml/gcc-testresults/2010-08/msg01232.html.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45258
^ permalink raw reply [flat|nested] 17+ messages in thread
* [Bug target/45258] linkage on -ldl, -lm and -lpthread should be purged from darwin build
[not found] <bug-45258-4@http.gcc.gnu.org/bugzilla/>
@ 2011-01-10 19:08 ` rwild at gcc dot gnu.org
2011-01-10 19:59 ` howarth at nitro dot med.uc.edu
` (3 subsequent siblings)
4 siblings, 0 replies; 17+ messages in thread
From: rwild at gcc dot gnu.org @ 2011-01-10 19:08 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45258
Ralf Wildenhues <rwild at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |howarth at nitro dot
| |med.uc.edu
--- Comment #11 from Ralf Wildenhues <rwild at gcc dot gnu.org> 2011-01-10 19:05:47 UTC ---
(In reply to comment #10)
> Posted patches to http://gcc.gnu.org/ml/gcc-patches/2010-08/msg00886.html and
> http://gcc.gnu.org/ml/gcc-patches/2010-08/msg00887.html.
Jack, based on the above, can this be closed now? Thanks.
^ permalink raw reply [flat|nested] 17+ messages in thread
* [Bug target/45258] linkage on -ldl, -lm and -lpthread should be purged from darwin build
[not found] <bug-45258-4@http.gcc.gnu.org/bugzilla/>
2011-01-10 19:08 ` rwild at gcc dot gnu.org
@ 2011-01-10 19:59 ` howarth at nitro dot med.uc.edu
2011-01-10 20:07 ` mrs at gcc dot gnu.org
` (2 subsequent siblings)
4 siblings, 0 replies; 17+ messages in thread
From: howarth at nitro dot med.uc.edu @ 2011-01-10 19:59 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45258
Jack Howarth <howarth at nitro dot med.uc.edu> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |RESOLVED
Resolution| |FIXED
--- Comment #12 from Jack Howarth <howarth at nitro dot med.uc.edu> 2011-01-10 19:37:15 UTC ---
(In reply to comment #11)
> (In reply to comment #10)
> > Posted patches to http://gcc.gnu.org/ml/gcc-patches/2010-08/msg00886.html and
> > http://gcc.gnu.org/ml/gcc-patches/2010-08/msg00887.html.
>
> Jack, based on the above, can this be closed now? Thanks.
Ralf,
Yes. Current gcc trunk always ends up with -lSystem last for the gcc build
itself. I had been considering creating a version_compare_remove_outfile spec
function to handle all the other symlinks of libSystem but this is impossible
to implement. Closing as fixed.
^ permalink raw reply [flat|nested] 17+ messages in thread
* [Bug target/45258] linkage on -ldl, -lm and -lpthread should be purged from darwin build
[not found] <bug-45258-4@http.gcc.gnu.org/bugzilla/>
2011-01-10 19:08 ` rwild at gcc dot gnu.org
2011-01-10 19:59 ` howarth at nitro dot med.uc.edu
@ 2011-01-10 20:07 ` mrs at gcc dot gnu.org
2011-01-10 20:25 ` iains at gcc dot gnu.org
2011-01-10 20:56 ` howarth at nitro dot med.uc.edu
4 siblings, 0 replies; 17+ messages in thread
From: mrs at gcc dot gnu.org @ 2011-01-10 20:07 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45258
--- Comment #13 from mrs at gcc dot gnu.org <mrs at gcc dot gnu.org> 2011-01-10 19:41:42 UTC ---
Author: mrs
Date: Mon Jan 10 19:41:39 2011
New Revision: 168639
URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=168639
Log:
2010-08-17 Jack Howarth <howarth@bromo.med.uc.edu>
PR target/45258
* gcc.c (spec_function): Add remove-outfile.
(remove_outfile_spec_function): New function.
* config/darwin.h (LINK_SPEC): Add removal of -ldl, -lm and -lpthread.
* invoke.texi (replace-outfile): Document.
Modified:
trunk/gcc/ChangeLog-2010
^ permalink raw reply [flat|nested] 17+ messages in thread
* [Bug target/45258] linkage on -ldl, -lm and -lpthread should be purged from darwin build
[not found] <bug-45258-4@http.gcc.gnu.org/bugzilla/>
` (2 preceding siblings ...)
2011-01-10 20:07 ` mrs at gcc dot gnu.org
@ 2011-01-10 20:25 ` iains at gcc dot gnu.org
2011-01-10 20:56 ` howarth at nitro dot med.uc.edu
4 siblings, 0 replies; 17+ messages in thread
From: iains at gcc dot gnu.org @ 2011-01-10 20:25 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45258
Iain Sandoe <iains at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |iains at gcc dot gnu.org
--- Comment #14 from Iain Sandoe <iains at gcc dot gnu.org> 2011-01-10 20:07:09 UTC ---
if we could get Java and libquadmath to intercept the new
LINK_GCC_C_SEQUENCE_SPEC
instead of re-writing the *lib sequence
it would give us a little more room to maneuver.
.. as it is when another part of the complier hijacks the *lib sequence it
happens too late for the target to intervene -- anything inserted as a '-l*' is
untouchable at that stage.
if we have the option to re-write from the start of LINK_GCC_C_SEQUENCE_SPEC
we're in with a chance...
otherwise .. the only solution then is to apply target-specific stuff in the
lib/java builds.
^ permalink raw reply [flat|nested] 17+ messages in thread
* [Bug target/45258] linkage on -ldl, -lm and -lpthread should be purged from darwin build
[not found] <bug-45258-4@http.gcc.gnu.org/bugzilla/>
` (3 preceding siblings ...)
2011-01-10 20:25 ` iains at gcc dot gnu.org
@ 2011-01-10 20:56 ` howarth at nitro dot med.uc.edu
4 siblings, 0 replies; 17+ messages in thread
From: howarth at nitro dot med.uc.edu @ 2011-01-10 20:56 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45258
--- Comment #15 from Jack Howarth <howarth at nitro dot med.uc.edu> 2011-01-10 20:27:22 UTC ---
Iain,
I was referring to the conceptual problems of creating a
version-compare-remove-outfile spec function. For any given OS release there is
a different set of symlinks for libSystem which are visible to the compiler
regardless of the setting of -mmacosx-version-min=. So one would really have to
have version-compare-remove-outfile look only at the running OS version to
decide properly which symlinks are present to prune.
^ permalink raw reply [flat|nested] 17+ messages in thread