diff options
author | Rich Felker <dalias@aerifal.cx> | 2012-09-14 23:38:10 -0400 |
---|---|---|
committer | Rich Felker <dalias@aerifal.cx> | 2012-09-14 23:38:10 -0400 |
commit | 9f74574fe697f0908d766579e73d94fc621463d4 (patch) | |
tree | 83dcf242611598873066366e9469243f655b5ab7 /Makefile | |
parent | d62f4e98881702f07501b965e5beebd7516deca2 (diff) | |
download | musl-9f74574fe697f0908d766579e73d94fc621463d4.tar.gz musl-9f74574fe697f0908d766579e73d94fc621463d4.tar.xz musl-9f74574fe697f0908d766579e73d94fc621463d4.zip |
remove forced -O3 from shared library CFLAGS
I originally added -O3 for shared libraries to counteract very bad behavior by GCC when building PIC code: it insists on reloading the GOT register in static functions that need it, even if the address of the function is never leaked from the translation unit and all local callers of the function have already loaded the GOT register. this measurably degrades performance in a few key areas like malloc. the inlining done at -O3 avoids the issue, but that's really not a good reason for overriding the user's choice of optimization level.
Diffstat (limited to 'Makefile')
-rw-r--r-- | Makefile | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/Makefile b/Makefile index 21a2c8d6..10c174ce 100644 --- a/Makefile +++ b/Makefile @@ -32,7 +32,7 @@ CFLAGS_ALL = $(CFLAGS_C99FSE) CFLAGS_ALL += -D_XOPEN_SOURCE=700 -I./arch/$(ARCH) -I./src/internal -I./include CFLAGS_ALL += $(CPPFLAGS) $(CFLAGS) CFLAGS_ALL_STATIC = $(CFLAGS_ALL) -CFLAGS_ALL_SHARED = $(CFLAGS_ALL) -fPIC -DSHARED -O3 +CFLAGS_ALL_SHARED = $(CFLAGS_ALL) -fPIC -DSHARED AR = $(CROSS_COMPILE)ar RANLIB = $(CROSS_COMPILE)ranlib |