mirror of
https://sourceware.org/git/glibc.git
synced 2024-11-21 12:30:06 +00:00
Remove --with-default-link configure option
Now that there is no need to use a special linker script to hardening internal data structures, remove the --with-default-link configure option and associated definitions. Reviewed-by: Carlos O'Donell <carlos@redhat.com>
This commit is contained in:
parent
3020f72618
commit
91fc5b9990
6
INSTALL
6
INSTALL
@ -90,12 +90,6 @@ if 'CFLAGS' is specified it must enable optimization. For example:
|
|||||||
library will still be usable, but functionality may be lost--for
|
library will still be usable, but functionality may be lost--for
|
||||||
example, you can't build a shared libc with old binutils.
|
example, you can't build a shared libc with old binutils.
|
||||||
|
|
||||||
'--with-default-link'
|
|
||||||
With '--with-default-link', the build system does not use a custom
|
|
||||||
linker script for linking shared objects. The default is
|
|
||||||
'--without-default-link', because the custom linker script is
|
|
||||||
needed for full RELRO protection.
|
|
||||||
|
|
||||||
'--with-nonshared-cflags=CFLAGS'
|
'--with-nonshared-cflags=CFLAGS'
|
||||||
Use additional compiler flags CFLAGS to build the parts of the
|
Use additional compiler flags CFLAGS to build the parts of the
|
||||||
library which are always statically linked into applications and
|
library which are always statically linked into applications and
|
||||||
|
21
Makerules
21
Makerules
@ -544,13 +544,8 @@ $(LINK.o) -shared -static-libgcc -Wl,-O1 $(sysdep-LDFLAGS) \
|
|||||||
-L$(subst :, -L,$(rpath-link)) -Wl,-rpath-link=$(rpath-link)
|
-L$(subst :, -L,$(rpath-link)) -Wl,-rpath-link=$(rpath-link)
|
||||||
endef
|
endef
|
||||||
|
|
||||||
# If the linker is good enough, we can let it use its default linker script.
|
|
||||||
# In the long term the custom linker script will be removed.
|
|
||||||
shlib-lds =
|
|
||||||
shlib-lds-flags =
|
|
||||||
|
|
||||||
define build-shlib
|
define build-shlib
|
||||||
$(build-shlib-helper) -o $@ $(shlib-lds-flags) \
|
$(build-shlib-helper) -o $@ \
|
||||||
$(csu-objpfx)abi-note.o $(build-shlib-objlist)
|
$(csu-objpfx)abi-note.o $(build-shlib-objlist)
|
||||||
endef
|
endef
|
||||||
|
|
||||||
@ -569,12 +564,12 @@ endef
|
|||||||
# binutils only position loadable notes into the first page for binaries,
|
# binutils only position loadable notes into the first page for binaries,
|
||||||
# not for shared objects
|
# not for shared objects
|
||||||
define build-module
|
define build-module
|
||||||
$(build-module-helper) -o $@ $(shlib-lds-flags) \
|
$(build-module-helper) -o $@ \
|
||||||
$(csu-objpfx)abi-note.o $(build-module-objlist) $(link-libc-args)
|
$(csu-objpfx)abi-note.o $(build-module-objlist) $(link-libc-args)
|
||||||
$(call after-link,$@)
|
$(call after-link,$@)
|
||||||
endef
|
endef
|
||||||
define build-module-asneeded
|
define build-module-asneeded
|
||||||
$(build-module-helper) -o $@ $(shlib-lds-flags) \
|
$(build-module-helper) -o $@ \
|
||||||
$(csu-objpfx)abi-note.o \
|
$(csu-objpfx)abi-note.o \
|
||||||
-Wl,--as-needed $(build-module-objlist) -Wl,--no-as-needed \
|
-Wl,--as-needed $(build-module-objlist) -Wl,--no-as-needed \
|
||||||
$(link-libc-args)
|
$(link-libc-args)
|
||||||
@ -606,7 +601,6 @@ $(common-objpfx)libc_pic.os: $(common-objpfx)libc_pic.a
|
|||||||
$(LINK.o) -nostdlib -nostartfiles -r -o $@ \
|
$(LINK.o) -nostdlib -nostartfiles -r -o $@ \
|
||||||
$(LDFLAGS-c_pic.os) $(whole-archive) $^ -o $@
|
$(LDFLAGS-c_pic.os) $(whole-archive) $^ -o $@
|
||||||
|
|
||||||
ifeq (,$(strip $(shlib-lds-flags)))
|
|
||||||
# Generate a list of -R options to excise .gnu.glibc-stub.* sections.
|
# Generate a list of -R options to excise .gnu.glibc-stub.* sections.
|
||||||
$(common-objpfx)libc_pic.opts: $(common-objpfx)libc_pic.os
|
$(common-objpfx)libc_pic.opts: $(common-objpfx)libc_pic.os
|
||||||
$(OBJDUMP) -h $< | \
|
$(OBJDUMP) -h $< | \
|
||||||
@ -620,7 +614,6 @@ $(common-objpfx)libc_pic.os.clean: $(common-objpfx)libc_pic.opts \
|
|||||||
generated += libc_pic.opts libc_pic.os.clean
|
generated += libc_pic.opts libc_pic.os.clean
|
||||||
|
|
||||||
libc_pic_clean := .clean
|
libc_pic_clean := .clean
|
||||||
endif
|
|
||||||
|
|
||||||
# Build a possibly-modified version of libc_pic.a for use in building
|
# Build a possibly-modified version of libc_pic.a for use in building
|
||||||
# linkobj/libc.so.
|
# linkobj/libc.so.
|
||||||
@ -650,16 +643,14 @@ $(common-objpfx)linkobj/libc.so: link-libc-deps = # empty
|
|||||||
$(common-objpfx)libc.so: $(common-objpfx)libc_pic.os$(libc_pic_clean) \
|
$(common-objpfx)libc.so: $(common-objpfx)libc_pic.os$(libc_pic_clean) \
|
||||||
$(elf-objpfx)sofini.os \
|
$(elf-objpfx)sofini.os \
|
||||||
$(elf-objpfx)interp.os \
|
$(elf-objpfx)interp.os \
|
||||||
$(elf-objpfx)ld.so \
|
$(elf-objpfx)ld.so
|
||||||
$(shlib-lds)
|
|
||||||
$(build-shlib)
|
$(build-shlib)
|
||||||
$(call after-link,$@)
|
$(call after-link,$@)
|
||||||
|
|
||||||
$(common-objpfx)linkobj/libc.so: $(common-objpfx)linkobj/libc_pic.a \
|
$(common-objpfx)linkobj/libc.so: $(common-objpfx)linkobj/libc_pic.a \
|
||||||
$(elf-objpfx)sofini.os \
|
$(elf-objpfx)sofini.os \
|
||||||
$(elf-objpfx)interp.os \
|
$(elf-objpfx)interp.os \
|
||||||
$(elf-objpfx)ld.so \
|
$(elf-objpfx)ld.so
|
||||||
$(shlib-lds)
|
|
||||||
$(build-shlib)
|
$(build-shlib)
|
||||||
$(call after-link,$@)
|
$(call after-link,$@)
|
||||||
|
|
||||||
@ -720,7 +711,7 @@ endif
|
|||||||
|
|
||||||
extra-modules-build := $(filter-out $(modules-names-nobuild),$(modules-names))
|
extra-modules-build := $(filter-out $(modules-names-nobuild),$(modules-names))
|
||||||
$(extra-modules-build:%=$(objpfx)%.so): $(objpfx)%.so: \
|
$(extra-modules-build:%=$(objpfx)%.so): $(objpfx)%.so: \
|
||||||
$(objpfx)%.os $(shlib-lds) $(link-libs-deps)
|
$(objpfx)%.os $(link-libs-deps)
|
||||||
$(build-module)
|
$(build-module)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
@ -69,7 +69,6 @@ have-libaudit = @have_libaudit@
|
|||||||
have-libcap = @have_libcap@
|
have-libcap = @have_libcap@
|
||||||
have-cc-with-libunwind = @libc_cv_cc_with_libunwind@
|
have-cc-with-libunwind = @libc_cv_cc_with_libunwind@
|
||||||
bind-now = @bindnow@
|
bind-now = @bindnow@
|
||||||
use-default-link = @use_default_link@
|
|
||||||
have-cxx-thread_local = @libc_cv_cxx_thread_local@
|
have-cxx-thread_local = @libc_cv_cxx_thread_local@
|
||||||
have-loop-to-function = @libc_cv_cc_loop_to_function@
|
have-loop-to-function = @libc_cv_cc_loop_to_function@
|
||||||
have-textrel_ifunc = @libc_cv_textrel_ifunc@
|
have-textrel_ifunc = @libc_cv_textrel_ifunc@
|
||||||
|
13
configure
vendored
13
configure
vendored
@ -680,7 +680,6 @@ hardcoded_path_in_tests
|
|||||||
enable_timezone_tools
|
enable_timezone_tools
|
||||||
rtld_early_cflags
|
rtld_early_cflags
|
||||||
extra_nonshared_cflags
|
extra_nonshared_cflags
|
||||||
use_default_link
|
|
||||||
sysheaders
|
sysheaders
|
||||||
ac_ct_CXX
|
ac_ct_CXX
|
||||||
CXXFLAGS
|
CXXFLAGS
|
||||||
@ -756,7 +755,6 @@ with_gd_lib
|
|||||||
with_binutils
|
with_binutils
|
||||||
with_selinux
|
with_selinux
|
||||||
with_headers
|
with_headers
|
||||||
with_default_link
|
|
||||||
with_nonshared_cflags
|
with_nonshared_cflags
|
||||||
with_rtld_early_cflags
|
with_rtld_early_cflags
|
||||||
with_timeoutfactor
|
with_timeoutfactor
|
||||||
@ -1475,7 +1473,6 @@ Optional Packages:
|
|||||||
--with-selinux if building with SELinux support
|
--with-selinux if building with SELinux support
|
||||||
--with-headers=PATH location of system headers to use (for example
|
--with-headers=PATH location of system headers to use (for example
|
||||||
/usr/src/linux/include) [default=compiler default]
|
/usr/src/linux/include) [default=compiler default]
|
||||||
--with-default-link do not use explicit linker scripts
|
|
||||||
--with-nonshared-cflags=CFLAGS
|
--with-nonshared-cflags=CFLAGS
|
||||||
build nonshared libraries with additional CFLAGS
|
build nonshared libraries with additional CFLAGS
|
||||||
--with-rtld-early-cflags=CFLAGS
|
--with-rtld-early-cflags=CFLAGS
|
||||||
@ -3275,16 +3272,6 @@ fi
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# Check whether --with-default-link was given.
|
|
||||||
if test "${with_default_link+set}" = set; then :
|
|
||||||
withval=$with_default_link; use_default_link=$withval
|
|
||||||
else
|
|
||||||
use_default_link=no
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# Check whether --with-nonshared-cflags was given.
|
# Check whether --with-nonshared-cflags was given.
|
||||||
if test "${with_nonshared_cflags+set}" = set; then :
|
if test "${with_nonshared_cflags+set}" = set; then :
|
||||||
withval=$with_nonshared_cflags; extra_nonshared_cflags=$withval
|
withval=$with_nonshared_cflags; extra_nonshared_cflags=$withval
|
||||||
|
@ -147,13 +147,6 @@ AC_ARG_WITH([headers],
|
|||||||
[sysheaders=''])
|
[sysheaders=''])
|
||||||
AC_SUBST(sysheaders)
|
AC_SUBST(sysheaders)
|
||||||
|
|
||||||
AC_SUBST(use_default_link)
|
|
||||||
AC_ARG_WITH([default-link],
|
|
||||||
AS_HELP_STRING([--with-default-link],
|
|
||||||
[do not use explicit linker scripts]),
|
|
||||||
[use_default_link=$withval],
|
|
||||||
[use_default_link=no])
|
|
||||||
|
|
||||||
dnl Additional build flags injection.
|
dnl Additional build flags injection.
|
||||||
AC_ARG_WITH([nonshared-cflags],
|
AC_ARG_WITH([nonshared-cflags],
|
||||||
AS_HELP_STRING([--with-nonshared-cflags=CFLAGS],
|
AS_HELP_STRING([--with-nonshared-cflags=CFLAGS],
|
||||||
|
@ -1242,8 +1242,6 @@ endif
|
|||||||
# Command to link into a larger single relocatable object.
|
# Command to link into a larger single relocatable object.
|
||||||
reloc-link = $(LINK.o) -nostdlib -nostartfiles -r
|
reloc-link = $(LINK.o) -nostdlib -nostartfiles -r
|
||||||
|
|
||||||
$(objpfx)sotruss-lib.so: $(shlib-lds)
|
|
||||||
|
|
||||||
$(objpfx)dl-allobjs.os: $(all-rtld-routines:%=$(objpfx)%.os)
|
$(objpfx)dl-allobjs.os: $(all-rtld-routines:%=$(objpfx)%.os)
|
||||||
$(reloc-link) -o $@ $^
|
$(reloc-link) -o $@ $^
|
||||||
|
|
||||||
|
@ -4,7 +4,7 @@ extra-modules-left := $(strip $(filter-out $(mod),$(extra-modules-left)))
|
|||||||
extra-objs := $(extra-objs) $(patsubst %,%.os,$($(mod)-routines))
|
extra-objs := $(extra-objs) $(patsubst %,%.os,$($(mod)-routines))
|
||||||
|
|
||||||
$(objpfx)$(mod).so: $(addprefix $(objpfx),$(addsuffix .os,$($(mod)-routines)))\
|
$(objpfx)$(mod).so: $(addprefix $(objpfx),$(addsuffix .os,$($(mod)-routines)))\
|
||||||
$(shlib-lds) $(link-libc-deps)
|
$(link-libc-deps)
|
||||||
$(build-module-asneeded)
|
$(build-module-asneeded)
|
||||||
|
|
||||||
ifneq (,$(extra-modules-left))
|
ifneq (,$(extra-modules-left))
|
||||||
|
@ -117,12 +117,6 @@ problem and suppress these constructs, so that the library will still be
|
|||||||
usable, but functionality may be lost---for example, you can't build a
|
usable, but functionality may be lost---for example, you can't build a
|
||||||
shared libc with old binutils.
|
shared libc with old binutils.
|
||||||
|
|
||||||
@item --with-default-link
|
|
||||||
With @code{--with-default-link}, the build system does not use a custom
|
|
||||||
linker script for linking shared objects. The default is
|
|
||||||
@code{--without-default-link}, because the custom linker script is
|
|
||||||
needed for full RELRO protection.
|
|
||||||
|
|
||||||
@item --with-nonshared-cflags=@var{cflags}
|
@item --with-nonshared-cflags=@var{cflags}
|
||||||
Use additional compiler flags @var{cflags} to build the parts of the
|
Use additional compiler flags @var{cflags} to build the parts of the
|
||||||
library which are always statically linked into applications and
|
library which are always statically linked into applications and
|
||||||
|
Loading…
Reference in New Issue
Block a user