Skip to content

Commit

Permalink
don't suppress shared libc when linker lacks -Bsymbolic-functions
Browse files Browse the repository at this point in the history
previous work overhauling the dynamic linker made it so that linking
libc with -Bsymbolic-functions was no longer mandatory, but the
configure logic that forced --disable-shared when ld failed to accept
the option was left in place.

this commit removes the hard-coded -Bsymbolic-functions from the
Makefile and changes the configure test to one that simply adds it to
the auto-detected LDFLAGS on success.
  • Loading branch information
richfelker committed Jan 31, 2016
1 parent c18d05f commit 65498f2
Show file tree
Hide file tree
Showing 2 changed files with 5 additions and 11 deletions.
3 changes: 1 addition & 2 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -159,8 +159,7 @@ obj/%.lo: $(srcdir)/%.c $(GENH) $(IMPH)

lib/libc.so: $(LOBJS) $(LDSO_OBJS)
$(CC) $(CFLAGS_ALL) $(LDFLAGS_ALL) -nostdlib -shared \
-Wl,-e,_dlstart -Wl,-Bsymbolic-functions \
-o $@ $(LOBJS) $(LDSO_OBJS) $(LIBCC)
-Wl,-e,_dlstart -o $@ $(LOBJS) $(LDSO_OBJS) $(LIBCC)

lib/libc.a: $(AOBJS)
rm -f $@
Expand Down
13 changes: 4 additions & 9 deletions configure
Original file line number Diff line number Diff line change
Expand Up @@ -565,15 +565,10 @@ tryldflag LDFLAGS_AUTO -Wl,--no-undefined
# versions built without shared library support and pcc are broken.
tryldflag LDFLAGS_AUTO -Wl,--exclude-libs=ALL

test "$shared" = "no" || {
# Disable dynamic linking if ld is broken and can't do -Bsymbolic-functions
LDFLAGS_DUMMY=
tryldflag LDFLAGS_DUMMY -Wl,-Bsymbolic-functions || {
test "$shared" = "yes" && fail "$0: error: linker cannot build shared library"
printf "warning: disabling dynamic linking support\n"
shared=no
}
}
# Linking with -Bsymbolic-functions is no longer mandatory for
# the dynamic linker to work, but enable it if it works as
# a linking optimization.
tryldflag LDFLAGS_AUTO -Wl,-Bsymbolic-functions

# Find compiler runtime library
test -z "$LIBCC" && tryldflag LIBCC -lgcc && tryldflag LIBCC -lgcc_eh
Expand Down

0 comments on commit 65498f2

Please sign in to comment.