Commit Graph

7 Commits

Author SHA1 Message Date
Rich Felker 7dad9c2125 fix musl-gcc wrapper to be compatible with default-pie gcc toolchains
the specfile for the wrapper was written assuming output is pie only
if -pie appears on the command line. recent (and older patched)
versions of gcc can be configured to produce pie output by default,
adn when used with such a toolchain, the wrapper linked the wrong
startfiles (crt*) containing pic-incompatible code.

rather than trying to figure out gcc's default, simply always use the
pic-compatible start files.
2018-08-02 19:15:48 -04:00
Rich Felker fd1d7be35f fix mixup in previous change to gcc wrapper 2013-06-07 10:18:07 -04:00
Rich Felker c161356002 make gcc-specific headers (intrinsics, etc.) available with wrapper
they are intentionally listed after the libc include directory so that
the gcc float.h, etc. don't get used in place of the libc ones.
2013-06-07 10:13:07 -04:00
Rich Felker 5d26d5d15b gcc wrapper improvement: leave libgcc dir in the library path
this is needed in case -lgcc is passed explicitly on the link command
line, for example if the wrapper is being used to build musl itself.
2012-07-23 23:29:03 -04:00
Rich Felker 6e0ad2277a make gcc wrapper rewrite link options rather than just extending them
this is not tested yet, but should work to get rid of unwanted
--hash-style=gnu hacks present in some distro-patched gcc versions.
2012-06-06 15:48:06 -04:00
Rich Felker ed6717277c fix musl-gcc wrapper to work with -pie
linking the wrong crt1.o resulted in textrels and thus crashing
2012-05-30 21:19:32 -04:00
Rich Felker 58f430c1e0 new gcc wrapper, entirely specfile based
the _concept_ of this wrapper has been tested extensively, but the
integration with the build/install system, and using a persistent
specfile rather than one generated at build-time, have not been
heavily tested and may need minor tweaks.

this approach should be a lot more robust (and easier to improve) than
writing a shell script that's responsible for trying to mimic gcc's
logic about whether it's compiling or linking, building shared libs or
executable files, etc. it's also lighter weight and should result in
mildly faster builds when using the wrapper.
2012-04-22 14:32:49 -04:00