This is the mail archive of the mailing list for the GCC project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Patch, target] Sort out some issues in config{,/*}/darwin*.h

Hi all,

Whilst this is mostly darwin-specific, it clearly needs build-system approval for the generation and installation of "" in $(libexecdir)


Much though I dislike addressing multiple problems in one patch...
... this particular area is like a balloon - if you push it in one place it just pops out somewhere else.

So this is what I've done:

o Trivial white-space tidies in asm directives (.comm, .lcomm, .glob missing leading tabs)

o Split the LINK_COMMAND_SPEC into two bits:
LINK_COMMAND_SPEC_A Common across the platform.
DSYMUTIL_SPEC which needs to vary depending on the default debug format.

o macro-ized DSYMUTIL so that we can change it without editing the specs.
o Provided a wrapper for the system-supplied dsymutil that allows us to edit out bogus warnings.
this is installed in $(libexecdir) . The initial version filters the message that gives us problems
like PR43254.

o Altered the behavior of DSYMUTIL_SPEC so that it:
(a) Always runs when we are generating an exe - IMO this is more intuitive to the end user - and
it side-steps the problem with the existing spec.
(b) it defaults to generation of flat debug (.dwarf) files - you can generate the .dSYM by passing
-mdsym on the c/l (although .dwarf works just fine with the XCode gdb AFAICT).

This latter step hopefully will get round the myriad "X.dSYM is directory" configury error msgs.

- this now works for all FEs including fortran.

o Filter out -lm and re-apply it where needed. [I've provided a bolt- hole for anyone who wants to
force -lm (-force_lm) at least until we confirm that this is not an issue.]

o Remove -lgcc from darwin.h and re-apply it in the rs6000/ darwin{7,8}.h where it is required
as the source of save/restore_world (added a FIXME that this probably should not be so).

o as a temporary hack - I've placed libgcc.a ahead of libm and libsystem on darwin 10. This works
around PR42333.

o fixed darwin10 not to provide no_compact_unwind when building for <10.6.

Have fun.. and I'd welcome comments on improvements.



	* New.
	* Build and install (to libexecdir)
	* config/i386/darwin.h: Correct tabs before asm directives.
	* config/rs6000/darwin.h: Ditto.
	* config/rs6000/darwin7.h: Add -lgcc to LIB_SPEC and add FIXME note.
	* config/rs6000/darwin8.h: Ditto.
	* config/darwin.h: Correct tabs before asm directives.
	Remove source code dependency on dsymutils running.  Reference  Strip -lm from Darwin versions that supply
	this in libSystem or libgcc_s.  Remove -lgcc catch-all from the
	* config/darwin9.h: LINK_COMMAND_SPEC: Use LINK_COMMAND_SPEC_A.
	Correct tabs before asm directives.
	* config/darwin10.h: Reference libgcc.a before libm and libSystem
	to work around PR42333.  Add FIXME note.  Make "no_compact_unwind"
	depend on targetting >= 10.6.

Attachment: 158296-darwinh-lm-dsymutils-diff.txt
Description: Text document

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]