mirror of
https://sourceware.org/git/glibc.git
synced 2025-07-28 00:21:52 +03:00
Remove non-ELF support
This commit is contained in:
33
ChangeLog
33
ChangeLog
@ -1,5 +1,38 @@
|
|||||||
2012-01-07 Ulrich Drepper <drepper@gmail.com>
|
2012-01-07 Ulrich Drepper <drepper@gmail.com>
|
||||||
|
|
||||||
|
[BZ #13551]
|
||||||
|
* Makeconfig: Remove all but ELF support including AIX support.
|
||||||
|
* Makerules: Likewise.
|
||||||
|
* config.h.in: Likewise.
|
||||||
|
* config.make.in: Likewise.
|
||||||
|
* configure: Likewise.
|
||||||
|
* configure.in: Likewise.
|
||||||
|
* csu/Makefile: Likewise.
|
||||||
|
* csu/version.c: Likewise.
|
||||||
|
* debug/Makefile: Likewise.
|
||||||
|
* dlfcn/Makefile: Likewise.
|
||||||
|
* elf/Makefile: Likewise.
|
||||||
|
* extra-lib.mk: Likewise.
|
||||||
|
* iconv/Makefile: Likewise.
|
||||||
|
* include/libc-symbols.h: Likewise.
|
||||||
|
* include/shlib-compat.h: Likewise.
|
||||||
|
* resolv/Makefile: Likewise.
|
||||||
|
* resolv/res_libc.c: Likewise.
|
||||||
|
* rt/Makefile: Likewise.
|
||||||
|
* sysdeps/i386/asm-syntax.h: Likewise.
|
||||||
|
* sysdeps/i386/sysdep.h: Likewise.
|
||||||
|
* sysdeps/ieee754/ldbl-opt/math_ldbl_opt.h: Likewise.
|
||||||
|
* sysdeps/mach/sysdep.h: Likewise.
|
||||||
|
* sysdeps/powerpc/powerpc32/Makefile: Likewise.
|
||||||
|
* sysdeps/powerpc/powerpc64/Makefile: Likewise.
|
||||||
|
* sysdeps/s390/asm-syntax.h: Likewise.
|
||||||
|
* sysdeps/s390/s390-32/sysdep.h: Likewise.
|
||||||
|
* sysdeps/s390/s390-64/sysdep.h: Likewise.
|
||||||
|
* sysdeps/sh/sysdep.h: Likewise.
|
||||||
|
* sysdeps/unix/sparc/sysdep.h: Likewise.
|
||||||
|
* sysdeps/wordsize-32/divdi3.c: Likewise.
|
||||||
|
* sysdeps/x86_64/sysdep.h: Likewise.
|
||||||
|
|
||||||
* argp/Versions: Remove _argp_unlock_xxx.
|
* argp/Versions: Remove _argp_unlock_xxx.
|
||||||
|
|
||||||
[BZ #13559]
|
[BZ #13559]
|
||||||
|
36
Makeconfig
36
Makeconfig
@ -92,12 +92,7 @@ stack-align-test-flags =
|
|||||||
|
|
||||||
# We have a special subdir for each binary format.
|
# We have a special subdir for each binary format.
|
||||||
# For now, only ELF is fully supported.
|
# For now, only ELF is fully supported.
|
||||||
ifeq ($(elf),yes)
|
|
||||||
binfmt-subdir = elf
|
binfmt-subdir = elf
|
||||||
else
|
|
||||||
# This is probably better than nothing.
|
|
||||||
binfmt-subdir = aout
|
|
||||||
endif
|
|
||||||
|
|
||||||
# Complete path to sysdep dirs.
|
# Complete path to sysdep dirs.
|
||||||
# `configure' writes a definition of `config-sysdirs' in `config.make'.
|
# `configure' writes a definition of `config-sysdirs' in `config.make'.
|
||||||
@ -395,9 +390,7 @@ asm-CPPFLAGS =
|
|||||||
endif
|
endif
|
||||||
|
|
||||||
# ELF always supports init/fini sections
|
# ELF always supports init/fini sections
|
||||||
ifeq ($(elf),yes)
|
|
||||||
have-initfini = yes
|
have-initfini = yes
|
||||||
endif
|
|
||||||
|
|
||||||
ifeq ($(have-as-needed),yes)
|
ifeq ($(have-as-needed),yes)
|
||||||
as-needed := -Wl,--as-needed
|
as-needed := -Wl,--as-needed
|
||||||
@ -426,7 +419,7 @@ ifndef static-start-installed-name
|
|||||||
static-start-installed-name = $(start-installed-name)
|
static-start-installed-name = $(start-installed-name)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifeq (yesyesyes,$(build-shared)$(elf)$(have-z-combreloc))
|
ifeq (yesyes,$(build-shared)$(have-z-combreloc))
|
||||||
combreloc-LDFLAGS = -Wl,-z,combreloc
|
combreloc-LDFLAGS = -Wl,-z,combreloc
|
||||||
LDFLAGS.so += $(combreloc-LDFLAGS)
|
LDFLAGS.so += $(combreloc-LDFLAGS)
|
||||||
LDFLAGS-rtld += $(combreloc-LDFLAGS)
|
LDFLAGS-rtld += $(combreloc-LDFLAGS)
|
||||||
@ -496,13 +489,12 @@ ifndef +link-bounded
|
|||||||
$(link-extra-libs-bounded) $(link-libc-bounded) $(+postctor) $(+postinit)
|
$(link-extra-libs-bounded) $(link-libc-bounded) $(+postctor) $(+postinit)
|
||||||
endif
|
endif
|
||||||
ifndef config-LDFLAGS
|
ifndef config-LDFLAGS
|
||||||
ifeq (yesyes,$(build-shared)$(elf))
|
ifeq (yes,$(build-shared))
|
||||||
config-LDFLAGS = -Wl,-dynamic-linker=$(slibdir)/$(rtld-installed-name)
|
config-LDFLAGS = -Wl,-dynamic-linker=$(slibdir)/$(rtld-installed-name)
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
ifndef link-libc
|
ifndef link-libc
|
||||||
ifeq (yes,$(build-shared))
|
ifeq (yes,$(build-shared))
|
||||||
ifeq ($(elf),yes)
|
|
||||||
# We need the versioned name of libc.so in the deps of $(others) et al
|
# We need the versioned name of libc.so in the deps of $(others) et al
|
||||||
# so that the symlink to libc.so is created before anything tries to
|
# so that the symlink to libc.so is created before anything tries to
|
||||||
# run the linked programs.
|
# run the linked programs.
|
||||||
@ -512,7 +504,6 @@ link-libc = -Wl,-rpath-link=$(rpath-link) \
|
|||||||
$(as-needed) $(common-objpfx)elf/ld.so $(no-as-needed) $(gnulib)
|
$(as-needed) $(common-objpfx)elf/ld.so $(no-as-needed) $(gnulib)
|
||||||
# This is how to find at build-time things that will be installed there.
|
# This is how to find at build-time things that will be installed there.
|
||||||
rpath-dirs = math elf dlfcn nss nis rt resolv crypt
|
rpath-dirs = math elf dlfcn nss nis rt resolv crypt
|
||||||
endif
|
|
||||||
rpath-link = \
|
rpath-link = \
|
||||||
$(common-objdir):$(subst $(empty) ,:,$(patsubst ../$(subdir),.,$(rpath-dirs:%=$(common-objpfx)%)))
|
$(common-objdir):$(subst $(empty) ,:,$(patsubst ../$(subdir),.,$(rpath-dirs:%=$(common-objpfx)%)))
|
||||||
elfobjdir := $(patsubst ../$(subdir),.,$(common-objpfx)elf)
|
elfobjdir := $(patsubst ../$(subdir),.,$(common-objpfx)elf)
|
||||||
@ -524,12 +515,10 @@ endif
|
|||||||
endif
|
endif
|
||||||
|
|
||||||
# Differences in the linkers on the various platforms.
|
# Differences in the linkers on the various platforms.
|
||||||
ifeq ($(elf),yes)
|
|
||||||
LDFLAGS-rpath-ORIGIN = -Wl,-rpath,'$$ORIGIN'
|
LDFLAGS-rpath-ORIGIN = -Wl,-rpath,'$$ORIGIN'
|
||||||
LDFLAGS-soname-fname = -Wl,-soname,$(@F)
|
LDFLAGS-soname-fname = -Wl,-soname,$(@F)
|
||||||
LDFLAGS-rdynamic = -rdynamic
|
LDFLAGS-rdynamic = -rdynamic
|
||||||
LDFLAGS-Bsymbolic = -Bsymbolic
|
LDFLAGS-Bsymbolic = -Bsymbolic
|
||||||
endif
|
|
||||||
|
|
||||||
# Choose the default search path for the dynamic linker based on
|
# Choose the default search path for the dynamic linker based on
|
||||||
# where we will install libraries.
|
# where we will install libraries.
|
||||||
@ -571,7 +560,6 @@ gnulib := -lgcc $(libgcc_eh)
|
|||||||
static-gnulib := -lgcc -lgcc_eh $(libunwind)
|
static-gnulib := -lgcc -lgcc_eh $(libunwind)
|
||||||
libc.so-gnulib := -lgcc
|
libc.so-gnulib := -lgcc
|
||||||
endif
|
endif
|
||||||
ifeq ($(elf),yes)
|
|
||||||
+preinit = $(addprefix $(csu-objpfx),crti.o)
|
+preinit = $(addprefix $(csu-objpfx),crti.o)
|
||||||
+postinit = $(addprefix $(csu-objpfx),crtn.o)
|
+postinit = $(addprefix $(csu-objpfx),crtn.o)
|
||||||
+prector = `$(CC) $(sysdep-LDFLAGS) --print-file-name=crtbegin.o`
|
+prector = `$(CC) $(sysdep-LDFLAGS) --print-file-name=crtbegin.o`
|
||||||
@ -580,14 +568,13 @@ ifeq ($(elf),yes)
|
|||||||
+prectorS = `$(CC) $(sysdep-LDFLAGS) --print-file-name=crtbeginS.o`
|
+prectorS = `$(CC) $(sysdep-LDFLAGS) --print-file-name=crtbeginS.o`
|
||||||
+postctorS = `$(CC) $(sysdep-LDFLAGS) --print-file-name=crtendS.o`
|
+postctorS = `$(CC) $(sysdep-LDFLAGS) --print-file-name=crtendS.o`
|
||||||
+interp = $(addprefix $(elf-objpfx),interp.os)
|
+interp = $(addprefix $(elf-objpfx),interp.os)
|
||||||
endif
|
|
||||||
csu-objpfx = $(common-objpfx)csu/
|
csu-objpfx = $(common-objpfx)csu/
|
||||||
elf-objpfx = $(common-objpfx)elf/
|
elf-objpfx = $(common-objpfx)elf/
|
||||||
|
|
||||||
# How to run a program we just linked with our library.
|
# How to run a program we just linked with our library.
|
||||||
# The program binary is assumed to be $(word 2,$^).
|
# The program binary is assumed to be $(word 2,$^).
|
||||||
built-program-file = $(dir $(word 2,$^))$(notdir $(word 2,$^))
|
built-program-file = $(dir $(word 2,$^))$(notdir $(word 2,$^))
|
||||||
ifeq (yesyes,$(build-shared)$(elf))
|
ifeq (yes,$(build-shared))
|
||||||
comma = ,
|
comma = ,
|
||||||
sysdep-library-path = \
|
sysdep-library-path = \
|
||||||
$(subst $(empty) ,:,$(strip $(patsubst -Wl$(comma)-rpath-link=%, %,\
|
$(subst $(empty) ,:,$(strip $(patsubst -Wl$(comma)-rpath-link=%, %,\
|
||||||
@ -915,29 +902,12 @@ endif
|
|||||||
endif # build-shared
|
endif # build-shared
|
||||||
|
|
||||||
|
|
||||||
ifeq ($(elf),yes)
|
|
||||||
dlfcn = dlfcn
|
dlfcn = dlfcn
|
||||||
ifeq ($(build-shared),yes)
|
ifeq ($(build-shared),yes)
|
||||||
libdl = $(common-objpfx)dlfcn/libdl.so$(libdl.so-version)
|
libdl = $(common-objpfx)dlfcn/libdl.so$(libdl.so-version)
|
||||||
else
|
else
|
||||||
libdl = $(common-objpfx)dlfcn/libdl.a
|
libdl = $(common-objpfx)dlfcn/libdl.a
|
||||||
endif
|
endif
|
||||||
else
|
|
||||||
ifneq (,$(findstring aix,$(config-os)))
|
|
||||||
ifeq ($(build-shared),yes)
|
|
||||||
dlfcn = dlfcn
|
|
||||||
libdl = $(common-objpfx)dlfcn/libdl.so$(libdl.so-version)
|
|
||||||
else
|
|
||||||
# No libdl without shared libs on AIX
|
|
||||||
dlfcn =
|
|
||||||
libdl =
|
|
||||||
endif
|
|
||||||
else
|
|
||||||
# No ELF, no AIX - no libdl, at least for now.
|
|
||||||
dlfcn =
|
|
||||||
libdl =
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
|
|
||||||
# These are the subdirectories containing the library source. The order
|
# These are the subdirectories containing the library source. The order
|
||||||
# is more or less arbitrary. The sorting step will take care of the
|
# is more or less arbitrary. The sorting step will take care of the
|
||||||
|
80
Makerules
80
Makerules
@ -408,7 +408,7 @@ endif
|
|||||||
|
|
||||||
# Modify the list of routines we build for different targets
|
# Modify the list of routines we build for different targets
|
||||||
|
|
||||||
ifeq (yesyes,$(build-shared)$(elf))
|
ifeq (yes,$(build-shared))
|
||||||
ifndef libc.so-version
|
ifndef libc.so-version
|
||||||
# Undefine this because it can't work when we libc.so is unversioned.
|
# Undefine this because it can't work when we libc.so is unversioned.
|
||||||
static-only-routines =
|
static-only-routines =
|
||||||
@ -449,13 +449,8 @@ endif
|
|||||||
# $(LDLIBS-%.so) may contain -l switches to generate run-time dependencies
|
# $(LDLIBS-%.so) may contain -l switches to generate run-time dependencies
|
||||||
# on other shared objects.
|
# on other shared objects.
|
||||||
lib%.so: lib%_pic.a $(+preinit) $(+postinit) $(+interp)
|
lib%.so: lib%_pic.a $(+preinit) $(+postinit) $(+interp)
|
||||||
ifneq (,$(findstring aix,$(config-os)))
|
|
||||||
(echo '#!'; \
|
|
||||||
dump -g $< | sed '1,6d' | cut -f2 | sort | uniq) > $(<:a=exp)
|
|
||||||
endif
|
|
||||||
$(build-shlib)
|
$(build-shlib)
|
||||||
|
|
||||||
ifeq ($(elf),yes)
|
|
||||||
define build-shlib-helper
|
define build-shlib-helper
|
||||||
$(LINK.o) -shared $(static-libgcc) -Wl,-O1 $(sysdep-LDFLAGS) \
|
$(LINK.o) -shared $(static-libgcc) -Wl,-O1 $(sysdep-LDFLAGS) \
|
||||||
$(if $($(@F)-no-z-defs)$(no-z-defs),,-Wl,-z,defs) $(config-LDFLAGS) \
|
$(if $($(@F)-no-z-defs)$(no-z-defs),,-Wl,-z,defs) $(config-LDFLAGS) \
|
||||||
@ -465,20 +460,7 @@ $(LINK.o) -shared $(static-libgcc) -Wl,-O1 $(sysdep-LDFLAGS) \
|
|||||||
$(LDFLAGS.so) $(LDFLAGS-$(@F:lib%.so=%).so) \
|
$(LDFLAGS.so) $(LDFLAGS-$(@F:lib%.so=%).so) \
|
||||||
-L$(subst :, -L,$(rpath-link)) -Wl,-rpath-link=$(rpath-link)
|
-L$(subst :, -L,$(rpath-link)) -Wl,-rpath-link=$(rpath-link)
|
||||||
endef
|
endef
|
||||||
else
|
|
||||||
ifneq (,$(findstring aix,$(config-os)))
|
|
||||||
define build-shlib-helper
|
|
||||||
$(LINK.o) -Wl,-G,-bM:SRE,-bnoentry,-bE:$(<:a=exp) \
|
|
||||||
$(sysdep-LDFLAGS) $(config-LDFLAGS) $(extra-B-$(@F:lib%.so=%).so) \
|
|
||||||
$(extra-B-$(@F:lib%.so=%).so) $(load-map-file) \
|
|
||||||
$(LDFLAGS.so) $(LDFLAGS-$(@F:lib%.so=%).so) \
|
|
||||||
-L$(subst :, -L,$(rpath-link))
|
|
||||||
endef
|
|
||||||
else
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
|
|
||||||
ifeq (yes,$(elf))
|
|
||||||
ifeq (yes,$(use-default-link))
|
ifeq (yes,$(use-default-link))
|
||||||
# If the linker is good enough, we can let it use its default linker script.
|
# If the linker is good enough, we can let it use its default linker script.
|
||||||
shlib-lds =
|
shlib-lds =
|
||||||
@ -527,30 +509,7 @@ define build-shlib
|
|||||||
$(build-shlib-helper) -o $@ $(shlib-lds-flags) \
|
$(build-shlib-helper) -o $@ $(shlib-lds-flags) \
|
||||||
$(csu-objpfx)abi-note.o $(build-shlib-objlist)
|
$(csu-objpfx)abi-note.o $(build-shlib-objlist)
|
||||||
endef
|
endef
|
||||||
else
|
|
||||||
ifneq (,$(findstring aix,$(config-os)))
|
|
||||||
define build-shlib
|
|
||||||
$(build-shlib-helper) \
|
|
||||||
-o $@ \
|
|
||||||
$(filter-out $(map-file) $(+preinit) $(+postinit),$^) \
|
|
||||||
$(no-whole-archive) $(LDLIBS-$(@F:lib%.so=%).so)
|
|
||||||
endef
|
|
||||||
define build-shlib
|
|
||||||
$(build-shlib-helper) \
|
|
||||||
$(build-shlib-objlist)
|
|
||||||
endef
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
|
|
||||||
ifneq (,$(findstring aix,$(config-os)))
|
|
||||||
define build-module-helper
|
|
||||||
$(LINK.o) -Wl,-G -Wl,-bM:SRE -Wl,-bnoentry -Wl,-bexpall \
|
|
||||||
$(sysdep-LDFLAGS) $(config-LDFLAGS) \
|
|
||||||
$(load-map-file) \
|
|
||||||
$(LDFLAGS.so) $(LDFLAGS-$(@F:%.so=%).so) \
|
|
||||||
-L$(subst :, -L,$(rpath-link)) -Wl,-L=$(rpath-link)
|
|
||||||
endef
|
|
||||||
else
|
|
||||||
define build-module-helper
|
define build-module-helper
|
||||||
$(LINK.o) -shared $(static-libgcc) $(sysdep-LDFLAGS) $(config-LDFLAGS) \
|
$(LINK.o) -shared $(static-libgcc) $(sysdep-LDFLAGS) $(config-LDFLAGS) \
|
||||||
$(if $($(@F)-no-z-defs)$(no-z-defs),,-Wl,-z,defs) \
|
$(if $($(@F)-no-z-defs)$(no-z-defs),,-Wl,-z,defs) \
|
||||||
@ -558,11 +517,9 @@ $(LINK.o) -shared $(static-libgcc) $(sysdep-LDFLAGS) $(config-LDFLAGS) \
|
|||||||
$(LDFLAGS.so) $(LDFLAGS-$(@F:%.so=%).so) \
|
$(LDFLAGS.so) $(LDFLAGS-$(@F:%.so=%).so) \
|
||||||
-L$(subst :, -L,$(rpath-link)) -Wl,-rpath-link=$(rpath-link)
|
-L$(subst :, -L,$(rpath-link)) -Wl,-rpath-link=$(rpath-link)
|
||||||
endef
|
endef
|
||||||
endif
|
|
||||||
|
|
||||||
# This macro is similar to build-shlib but it does not define a soname
|
# This macro is similar to build-shlib but it does not define a soname
|
||||||
# and it does not depend on the destination name to start with `lib'.
|
# and it does not depend on the destination name to start with `lib'.
|
||||||
ifeq (yes,$(elf))
|
|
||||||
# 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
|
||||||
@ -574,23 +531,6 @@ $(build-module-helper) -o $@ $(shlib-lds-flags) \
|
|||||||
$(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
|
||||||
endef
|
endef
|
||||||
else
|
|
||||||
ifneq (,$(findstring aix,$(config-os)))
|
|
||||||
define build-module
|
|
||||||
$(build-module-helper) \
|
|
||||||
-o $@ \
|
|
||||||
$(filter-out $(map-file) $(+preinit) $(+postinit),$^) \
|
|
||||||
$(no-whole-archive) $(LDLIBS-$(@F:%.so=%).so)
|
|
||||||
endef
|
|
||||||
else
|
|
||||||
define build-module
|
|
||||||
define build-module
|
|
||||||
$(build-module-helper) \
|
|
||||||
-o $@ \
|
|
||||||
$(build-module-objlist)
|
|
||||||
endef
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
|
|
||||||
build-module-helper-objlist = \
|
build-module-helper-objlist = \
|
||||||
$(patsubst %_pic.a,$(whole-archive) %_pic.a $(no-whole-archive),\
|
$(patsubst %_pic.a,$(whole-archive) %_pic.a $(no-whole-archive),\
|
||||||
@ -617,7 +557,6 @@ endif
|
|||||||
# contains some of libc_pic.a already, which will prevent the COMMONs
|
# contains some of libc_pic.a already, which will prevent the COMMONs
|
||||||
# from being allocated in libc.so, which introduces evil dependencies
|
# from being allocated in libc.so, which introduces evil dependencies
|
||||||
# between libc.so and ld.so, which can make it impossible to upgrade.
|
# between libc.so and ld.so, which can make it impossible to upgrade.
|
||||||
ifeq ($(elf),yes)
|
|
||||||
$(common-objpfx)libc_pic.os: $(common-objpfx)libc_pic.a
|
$(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) -Wl,-d $(whole-archive) $^ -o $@
|
$(LDFLAGS-c_pic.os) -Wl,-d $(whole-archive) $^ -o $@
|
||||||
@ -655,23 +594,6 @@ $(common-objpfx)libc.so$(libc.so-version): $(common-objpfx)libc.so
|
|||||||
common-generated += libc.so$(libc.so-version)
|
common-generated += libc.so$(libc.so-version)
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
else
|
|
||||||
ifneq (,$(findstring aix,$(config-os)))
|
|
||||||
$(common-objpfx)libc.so: $(common-objpfx)libc_pic.a
|
|
||||||
@rm -f $@
|
|
||||||
(echo '#!'; \
|
|
||||||
dump -g $^ | sed '1,6d' | cut -f2 | sort | uniq) > $(^:a=exp)
|
|
||||||
sed '/__mulh/d;/__mull/d;/__divss/d;/__divus/d;/__quoss/d;/__quous/d' \
|
|
||||||
/lib/syscalls.exp > $(common-objpfx)syscalls.exp
|
|
||||||
$(LINK.o) -G -bM:SRE -bnoentry -bE:$(^:a=exp) \
|
|
||||||
-bE:$(common-objpfx)syscalls.exp \
|
|
||||||
-bI:$(common-objpfx)syscalls.exp \
|
|
||||||
-L$(common-objpfx) -o $@ $^
|
|
||||||
# AIX runtime ld wants libc.so to be libc.a(shr.o) hardwired
|
|
||||||
cp $@ $(common-objpfx)shr.o
|
|
||||||
$(AR) $(ARFLAGS) $(common-objpfx)libc.a $(common-objpfx)shr.o
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
|
|
||||||
# Figure out the source filenames in this directory.
|
# Figure out the source filenames in this directory.
|
||||||
|
|
||||||
|
4
NEWS
4
NEWS
@ -9,8 +9,8 @@ Version 2.16
|
|||||||
|
|
||||||
* The following bugs are resolved with this release:
|
* The following bugs are resolved with this release:
|
||||||
|
|
||||||
13526, 13527, 13528, 13529, 13531, 13532, 13533, 13547, 13552, 13555,
|
13526, 13527, 13528, 13529, 13531, 13532, 13533, 13547, 13551, 13552,
|
||||||
13559
|
13555, 13559
|
||||||
|
|
||||||
* ISO C11 support:
|
* ISO C11 support:
|
||||||
|
|
||||||
|
@ -8,11 +8,6 @@
|
|||||||
# error "glibc must not be compiled with -ffast-math"
|
# error "glibc must not be compiled with -ffast-math"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* Define if using ELF, which supports weak symbols.
|
|
||||||
This implies HAVE_ASM_WEAK_DIRECTIVE and NO_UNDERSCORES; set by
|
|
||||||
--with-elf. */
|
|
||||||
#undef HAVE_ELF
|
|
||||||
|
|
||||||
/* Define if building with SELinux support. Set by --with-selinux. */
|
/* Define if building with SELinux support. Set by --with-selinux. */
|
||||||
#undef HAVE_SELINUX
|
#undef HAVE_SELINUX
|
||||||
|
|
||||||
@ -22,9 +17,6 @@
|
|||||||
/* Defined if building with SELinux support & libcap libs are detected. */
|
/* Defined if building with SELinux support & libcap libs are detected. */
|
||||||
#undef HAVE_LIBCAP
|
#undef HAVE_LIBCAP
|
||||||
|
|
||||||
/* Define if using XCOFF. Set by --with-xcoff. */
|
|
||||||
#undef HAVE_XCOFF
|
|
||||||
|
|
||||||
/* Define if C symbols are asm symbols. Don't define if C symbols
|
/* Define if C symbols are asm symbols. Don't define if C symbols
|
||||||
have a `_' prepended to make the asm symbol. */
|
have a `_' prepended to make the asm symbol. */
|
||||||
#undef NO_UNDERSCORES
|
#undef NO_UNDERSCORES
|
||||||
|
@ -44,7 +44,6 @@ sysincludes = @SYSINCLUDES@
|
|||||||
c++-sysincludes = @CXX_SYSINCLUDES@
|
c++-sysincludes = @CXX_SYSINCLUDES@
|
||||||
all-warnings = @all_warnings@
|
all-warnings = @all_warnings@
|
||||||
|
|
||||||
elf = @elf@
|
|
||||||
have-z-combreloc = @libc_cv_z_combreloc@
|
have-z-combreloc = @libc_cv_z_combreloc@
|
||||||
have-z-execstack = @libc_cv_z_execstack@
|
have-z-execstack = @libc_cv_z_execstack@
|
||||||
have-initfini = @libc_cv_have_initfini@
|
have-initfini = @libc_cv_have_initfini@
|
||||||
|
43
configure
vendored
43
configure
vendored
@ -616,8 +616,6 @@ profile
|
|||||||
libc_cv_pic_default
|
libc_cv_pic_default
|
||||||
shared
|
shared
|
||||||
static
|
static
|
||||||
xcoff
|
|
||||||
elf
|
|
||||||
ldd_rewrite_script
|
ldd_rewrite_script
|
||||||
use_ldconfig
|
use_ldconfig
|
||||||
libc_cv_as_i686
|
libc_cv_as_i686
|
||||||
@ -769,7 +767,6 @@ with_fp
|
|||||||
with_binutils
|
with_binutils
|
||||||
with_elf
|
with_elf
|
||||||
with_selinux
|
with_selinux
|
||||||
with_xcoff
|
|
||||||
with_headers
|
with_headers
|
||||||
with_default_link
|
with_default_link
|
||||||
enable_sanity_checks
|
enable_sanity_checks
|
||||||
@ -1458,7 +1455,6 @@ Optional Packages:
|
|||||||
--with-binutils=PATH specify location of binutils (as and ld)
|
--with-binutils=PATH specify location of binutils (as and ld)
|
||||||
--with-elf if using the ELF object format
|
--with-elf if using the ELF object format
|
||||||
--with-selinux if building with SELinux support
|
--with-selinux if building with SELinux support
|
||||||
--with-xcoff if using the XCOFF object format
|
|
||||||
--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-default-link do not use explicit linker scripts
|
||||||
@ -3545,14 +3541,6 @@ else
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
# Check whether --with-xcoff was given.
|
|
||||||
if test "${with_xcoff+set}" = set; then :
|
|
||||||
withval=$with_xcoff; xcoff=$withval
|
|
||||||
else
|
|
||||||
xcoff=no
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# Check whether --with-headers was given.
|
# Check whether --with-headers was given.
|
||||||
if test "${with_headers+set}" = set; then :
|
if test "${with_headers+set}" = set; then :
|
||||||
@ -3817,20 +3805,7 @@ test "$config_vendor" = unknown && config_vendor=
|
|||||||
config_os="`echo $config_os | sed 's/^unknown-//'`"
|
config_os="`echo $config_os | sed 's/^unknown-//'`"
|
||||||
|
|
||||||
# Some configurations imply other options.
|
# Some configurations imply other options.
|
||||||
case "$host_os" in
|
elf=yes
|
||||||
# i586-linuxaout is mangled into i586-pc-linux-gnuaout
|
|
||||||
linux*ecoff* | linux*aout* | gnu*aout* | gnu*ecoff*)
|
|
||||||
;;
|
|
||||||
gnu* | linux* | freebsd* | netbsd* | sysv4* | solaris2* | irix6*)
|
|
||||||
# These systems (almost) always use the ELF format.
|
|
||||||
elf=yes
|
|
||||||
;;
|
|
||||||
aix*)
|
|
||||||
# These systems are always xcoff
|
|
||||||
xcoff=yes
|
|
||||||
elf=no
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
# The configure fragment of an add-on port can modify these to supplement
|
# The configure fragment of an add-on port can modify these to supplement
|
||||||
# or override the table in the case statement below. No fragment should
|
# or override the table in the case statement below. No fragment should
|
||||||
@ -4017,7 +3992,7 @@ fi
|
|||||||
###
|
###
|
||||||
if test -z "$enable_hacker_mode" && test x"$libc_config_ok" != xyes; then
|
if test -z "$enable_hacker_mode" && test x"$libc_config_ok" != xyes; then
|
||||||
case "$machine-$host_os" in
|
case "$machine-$host_os" in
|
||||||
*-linux* | *-gnu* | arm*-none* | powerpc-aix4.3.*)
|
*-linux* | *-gnu* | arm*-none*)
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
echo "*** The GNU C library is currently not available for this platform."
|
echo "*** The GNU C library is currently not available for this platform."
|
||||||
@ -4223,10 +4198,6 @@ irix6*)
|
|||||||
base_os=unix/sysv/irix6/$os ;;
|
base_os=unix/sysv/irix6/$os ;;
|
||||||
solaris[2-9]*)
|
solaris[2-9]*)
|
||||||
base_os=unix/sysv/sysv4 ;;
|
base_os=unix/sysv/sysv4 ;;
|
||||||
hpux*)
|
|
||||||
base_os=unix/sysv/hpux/$os ;;
|
|
||||||
aix4.3*)
|
|
||||||
base_os=unix/sysv/aix/aix4.3 ;;
|
|
||||||
none)
|
none)
|
||||||
base_os=standalone ;;
|
base_os=standalone ;;
|
||||||
esac
|
esac
|
||||||
@ -7930,16 +7901,6 @@ fi
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
if test $elf = yes; then
|
|
||||||
$as_echo "#define HAVE_ELF 1" >>confdefs.h
|
|
||||||
|
|
||||||
fi
|
|
||||||
if test $xcoff = yes; then
|
|
||||||
$as_echo "#define HAVE_XCOFF 1" >>confdefs.h
|
|
||||||
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if test $shared = default; then
|
if test $shared = default; then
|
||||||
shared=$elf
|
shared=$elf
|
||||||
|
34
configure.in
34
configure.in
@ -87,11 +87,6 @@ AC_ARG_WITH([selinux],
|
|||||||
[if building with SELinux support]),
|
[if building with SELinux support]),
|
||||||
[with_selinux=$withval],
|
[with_selinux=$withval],
|
||||||
[with_selinux=auto])
|
[with_selinux=auto])
|
||||||
AC_ARG_WITH([xcoff],
|
|
||||||
AC_HELP_STRING([--with-xcoff],
|
|
||||||
[if using the XCOFF object format]),
|
|
||||||
[xcoff=$withval],
|
|
||||||
[xcoff=no])
|
|
||||||
|
|
||||||
AC_ARG_WITH([headers],
|
AC_ARG_WITH([headers],
|
||||||
AC_HELP_STRING([--with-headers=PATH],
|
AC_HELP_STRING([--with-headers=PATH],
|
||||||
@ -308,20 +303,7 @@ test "$config_vendor" = unknown && config_vendor=
|
|||||||
config_os="`echo $config_os | sed 's/^unknown-//'`"
|
config_os="`echo $config_os | sed 's/^unknown-//'`"
|
||||||
|
|
||||||
# Some configurations imply other options.
|
# Some configurations imply other options.
|
||||||
case "$host_os" in
|
elf=yes
|
||||||
# i586-linuxaout is mangled into i586-pc-linux-gnuaout
|
|
||||||
linux*ecoff* | linux*aout* | gnu*aout* | gnu*ecoff*)
|
|
||||||
;;
|
|
||||||
gnu* | linux* | freebsd* | netbsd* | sysv4* | solaris2* | irix6*)
|
|
||||||
# These systems (almost) always use the ELF format.
|
|
||||||
elf=yes
|
|
||||||
;;
|
|
||||||
aix*)
|
|
||||||
# These systems are always xcoff
|
|
||||||
xcoff=yes
|
|
||||||
elf=no
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
# The configure fragment of an add-on port can modify these to supplement
|
# The configure fragment of an add-on port can modify these to supplement
|
||||||
# or override the table in the case statement below. No fragment should
|
# or override the table in the case statement below. No fragment should
|
||||||
@ -507,7 +489,7 @@ AC_SUBST(add_on_subdirs)
|
|||||||
###
|
###
|
||||||
if test -z "$enable_hacker_mode" && test x"$libc_config_ok" != xyes; then
|
if test -z "$enable_hacker_mode" && test x"$libc_config_ok" != xyes; then
|
||||||
case "$machine-$host_os" in
|
case "$machine-$host_os" in
|
||||||
*-linux* | *-gnu* | arm*-none* | powerpc-aix4.3.*)
|
*-linux* | *-gnu* | arm*-none*)
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
echo "*** The GNU C library is currently not available for this platform."
|
echo "*** The GNU C library is currently not available for this platform."
|
||||||
@ -670,10 +652,6 @@ irix6*)
|
|||||||
base_os=unix/sysv/irix6/$os ;;
|
base_os=unix/sysv/irix6/$os ;;
|
||||||
solaris[2-9]*)
|
solaris[2-9]*)
|
||||||
base_os=unix/sysv/sysv4 ;;
|
base_os=unix/sysv/sysv4 ;;
|
||||||
hpux*)
|
|
||||||
base_os=unix/sysv/hpux/$os ;;
|
|
||||||
aix4.3*)
|
|
||||||
base_os=unix/sysv/aix/aix4.3 ;;
|
|
||||||
none)
|
none)
|
||||||
base_os=standalone ;;
|
base_os=standalone ;;
|
||||||
esac
|
esac
|
||||||
@ -2334,14 +2312,6 @@ AC_SUBST(libc_cv_as_i686)
|
|||||||
AC_SUBST(use_ldconfig)
|
AC_SUBST(use_ldconfig)
|
||||||
AC_SUBST(ldd_rewrite_script)
|
AC_SUBST(ldd_rewrite_script)
|
||||||
|
|
||||||
AC_SUBST(elf) AC_SUBST(xcoff)
|
|
||||||
if test $elf = yes; then
|
|
||||||
AC_DEFINE(HAVE_ELF)
|
|
||||||
fi
|
|
||||||
if test $xcoff = yes; then
|
|
||||||
AC_DEFINE(HAVE_XCOFF)
|
|
||||||
fi
|
|
||||||
|
|
||||||
AC_SUBST(static)
|
AC_SUBST(static)
|
||||||
AC_SUBST(shared)
|
AC_SUBST(shared)
|
||||||
if test $shared = default; then
|
if test $shared = default; then
|
||||||
|
20
csu/Makefile
20
csu/Makefile
@ -1,5 +1,5 @@
|
|||||||
# Makefile for csu code for GNU C library.
|
# Makefile for csu code for GNU C library.
|
||||||
# Copyright (C) 1995-2004, 2005, 2006, 2010 Free Software Foundation, Inc.
|
# Copyright (C) 1995-2006, 2010, 2012 Free Software Foundation, Inc.
|
||||||
# This file is part of the GNU C Library.
|
# This file is part of the GNU C Library.
|
||||||
|
|
||||||
# The GNU C Library is free software; you can redistribute it and/or
|
# The GNU C Library is free software; you can redistribute it and/or
|
||||||
@ -70,10 +70,8 @@ omit-deps += $(patsubst %.o,%,$(static-start-installed-name) \
|
|||||||
install-lib += $(static-start-installed-name) g$(static-start-installed-name)
|
install-lib += $(static-start-installed-name) g$(static-start-installed-name)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifeq (yes,$(elf))
|
|
||||||
before-compile += $(objpfx)abi-tag.h
|
before-compile += $(objpfx)abi-tag.h
|
||||||
generated += abi-tag.h
|
generated += abi-tag.h
|
||||||
endif
|
|
||||||
|
|
||||||
ifeq ($(have-initfini),yes)
|
ifeq ($(have-initfini),yes)
|
||||||
|
|
||||||
@ -124,10 +122,8 @@ $(objpfx)defs.h: $(objpfx)initfini.s
|
|||||||
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifeq (yes,$(elf))
|
|
||||||
extra-objs += abi-note.o init.o
|
extra-objs += abi-note.o init.o
|
||||||
asm-CPPFLAGS += -I$(objpfx).
|
asm-CPPFLAGS += -I$(objpfx).
|
||||||
endif
|
|
||||||
|
|
||||||
include ../Rules
|
include ../Rules
|
||||||
|
|
||||||
@ -139,7 +135,6 @@ $(CC) -nostdlib -nostartfiles -r -o $@ $^
|
|||||||
endef
|
endef
|
||||||
|
|
||||||
ifndef start-installed-name-rule
|
ifndef start-installed-name-rule
|
||||||
ifeq (yes,$(elf))
|
|
||||||
# We link the ELF startfile along with a SHT_NOTE section indicating
|
# We link the ELF startfile along with a SHT_NOTE section indicating
|
||||||
# the kernel ABI the binaries linked with this library will require.
|
# the kernel ABI the binaries linked with this library will require.
|
||||||
$(objpfx)$(start-installed-name): $(objpfx)start.o $(objpfx)abi-note.o \
|
$(objpfx)$(start-installed-name): $(objpfx)start.o $(objpfx)abi-note.o \
|
||||||
@ -151,19 +146,6 @@ $(objpfx)S$(start-installed-name): $(objpfx)start.os $(objpfx)abi-note.o \
|
|||||||
$(objpfx)b$(start-installed-name): $(objpfx)start.ob $(objpfx)abi-note.ob \
|
$(objpfx)b$(start-installed-name): $(objpfx)start.ob $(objpfx)abi-note.ob \
|
||||||
$(objpfx)init.ob
|
$(objpfx)init.ob
|
||||||
$(link-relocatable)
|
$(link-relocatable)
|
||||||
else
|
|
||||||
# The startfile is installed under different names, so we just call our
|
|
||||||
# source file `start.c' and copy to the installed name after compiling.
|
|
||||||
$(objpfx)$(start-installed-name): $(objpfx)start.o
|
|
||||||
rm -f $@
|
|
||||||
ln $< $@
|
|
||||||
$(objpfx)S$(start-installed-name): $(objpfx)start.os
|
|
||||||
rm -f $@
|
|
||||||
ln $< $@
|
|
||||||
$(objpfx)b$(start-installed-name): $(objpfx)start.ob
|
|
||||||
rm -f $@
|
|
||||||
ln $< $@
|
|
||||||
endif
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
# The profiling startfile is made by linking together the normal
|
# The profiling startfile is made by linking together the normal
|
||||||
|
@ -66,7 +66,6 @@ __gnu_get_libc_version (void)
|
|||||||
}
|
}
|
||||||
weak_alias (__gnu_get_libc_version, gnu_get_libc_version)
|
weak_alias (__gnu_get_libc_version, gnu_get_libc_version)
|
||||||
|
|
||||||
#ifdef HAVE_ELF
|
|
||||||
/* This function is the entry point for the shared object.
|
/* This function is the entry point for the shared object.
|
||||||
Running the library as a program will get here. */
|
Running the library as a program will get here. */
|
||||||
|
|
||||||
@ -77,4 +76,3 @@ __libc_main (void)
|
|||||||
__libc_print_version ();
|
__libc_print_version ();
|
||||||
_exit (0);
|
_exit (0);
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
# Copyright (C) 1998-2001,2004-2008, 2009, 2011 Free Software Foundation, Inc.
|
# Copyright (C) 1998-2001,2004-2008, 2009, 2011, 2012 Free Software Foundation, Inc.
|
||||||
# This file is part of the GNU C Library.
|
# This file is part of the GNU C Library.
|
||||||
|
|
||||||
# The GNU C Library is free software; you can redistribute it and/or
|
# The GNU C Library is free software; you can redistribute it and/or
|
||||||
@ -140,11 +140,9 @@ install-bin-script = xtrace
|
|||||||
include ../Makeconfig
|
include ../Makeconfig
|
||||||
|
|
||||||
distribute += catchsegv.sh xtrace.sh
|
distribute += catchsegv.sh xtrace.sh
|
||||||
ifeq ($(elf),yes)
|
|
||||||
ifeq ($(build-shared),yes)
|
ifeq ($(build-shared),yes)
|
||||||
install-bin-script += catchsegv
|
install-bin-script += catchsegv
|
||||||
endif
|
endif
|
||||||
endif
|
|
||||||
generated = catchsegv xtrace
|
generated = catchsegv xtrace
|
||||||
|
|
||||||
include ../Rules
|
include ../Rules
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
# Copyright (C) 1995-2006, 2010 Free Software Foundation, Inc.
|
# Copyright (C) 1995-2006, 2010, 2012 Free Software Foundation, Inc.
|
||||||
# This file is part of the GNU C Library.
|
# This file is part of the GNU C Library.
|
||||||
|
|
||||||
# The GNU C Library is free software; you can redistribute it and/or
|
# The GNU C Library is free software; you can redistribute it and/or
|
||||||
@ -53,7 +53,7 @@ failtestmod.so-no-z-defs = yes
|
|||||||
glreflib2.so-no-z-defs = yes
|
glreflib2.so-no-z-defs = yes
|
||||||
errmsg1mod.so-no-z-defs = yes
|
errmsg1mod.so-no-z-defs = yes
|
||||||
|
|
||||||
ifeq (yesyesyes,$(build-static)$(build-shared)$(elf))
|
ifeq (yesyes,$(build-static)$(build-shared))
|
||||||
tests += tststatic tststatic2
|
tests += tststatic tststatic2
|
||||||
tests-static += tststatic tststatic2
|
tests-static += tststatic tststatic2
|
||||||
modules-names += modstatic modstatic2
|
modules-names += modstatic modstatic2
|
||||||
@ -134,4 +134,4 @@ $(objpfx)bug-atexit3.out: $(objpfx)bug-atexit3-lib.so
|
|||||||
# This ensures they will load libc.so for needed symbols if loaded by
|
# This ensures they will load libc.so for needed symbols if loaded by
|
||||||
# a statically-linked program that hasn't already loaded it.
|
# a statically-linked program that hasn't already loaded it.
|
||||||
$(objpfx)libdl.so: $(common-objpfx)libc.so $(common-objpfx)libc_nonshared.a \
|
$(objpfx)libdl.so: $(common-objpfx)libc.so $(common-objpfx)libc_nonshared.a \
|
||||||
$(if $(filter yes,$(elf)), $(elfobjdir)/ld.so)
|
$(elfobjdir)/ld.so
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
# Copyright (C) 1995-2007,2008,2009,2010,2011 Free Software Foundation, Inc.
|
# Copyright (C) 1995-2011, 2012 Free Software Foundation, Inc.
|
||||||
# This file is part of the GNU C Library.
|
# This file is part of the GNU C Library.
|
||||||
|
|
||||||
# The GNU C Library is free software; you can redistribute it and/or
|
# The GNU C Library is free software; you can redistribute it and/or
|
||||||
@ -202,7 +202,7 @@ tests += tst-array1 tst-array2 tst-array3 tst-array4 tst-array5
|
|||||||
endif
|
endif
|
||||||
ifeq (yes,$(build-static))
|
ifeq (yes,$(build-static))
|
||||||
tests-static = tst-tls1-static tst-tls2-static tst-stackguard1-static
|
tests-static = tst-tls1-static tst-tls2-static tst-stackguard1-static
|
||||||
ifeq (yesyesyes,$(build-static)$(build-shared)$(elf))
|
ifeq (yesyes,$(build-static)$(build-shared))
|
||||||
tests-static += tst-tls9-static
|
tests-static += tst-tls9-static
|
||||||
tst-tls9-static-ENV = \
|
tst-tls9-static-ENV = \
|
||||||
LD_LIBRARY_PATH=$(objpfx):$(common-objpfx):$(common-objpfx)dlfcn
|
LD_LIBRARY_PATH=$(objpfx):$(common-objpfx):$(common-objpfx)dlfcn
|
||||||
|
@ -12,7 +12,7 @@ extra-libs-left := $(filter-out $(lib),$(extra-libs-left))
|
|||||||
object-suffixes-$(lib) := $(filter-out $($(lib)-inhibit-o),$(object-suffixes))
|
object-suffixes-$(lib) := $(filter-out $($(lib)-inhibit-o),$(object-suffixes))
|
||||||
|
|
||||||
ifneq (,$($(lib)-static-only-routines))
|
ifneq (,$($(lib)-static-only-routines))
|
||||||
ifneq (,$(filter yesyes%,$(build-shared)$(elf)$($(lib).so-version)))
|
ifneq (,$(filter yes%,$(build-shared)$($(lib).so-version)))
|
||||||
object-suffixes-$(lib) += $(filter-out $($(lib)-inhibit-o),.oS)
|
object-suffixes-$(lib) += $(filter-out $($(lib)-inhibit-o),.oS)
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
# Copyright (C) 1997,1998,2000-2004,2007,2009 Free Software Foundation, Inc.
|
# Copyright (C) 1997,1998,2000-2004,2007,2009,2012
|
||||||
|
# Free Software Foundation, Inc.
|
||||||
# This file is part of the GNU C Library.
|
# This file is part of the GNU C Library.
|
||||||
|
|
||||||
# The GNU C Library is free software; you can redistribute it and/or
|
# The GNU C Library is free software; you can redistribute it and/or
|
||||||
@ -27,13 +28,7 @@ headers = iconv.h gconv.h
|
|||||||
routines = iconv_open iconv iconv_close \
|
routines = iconv_open iconv iconv_close \
|
||||||
gconv_open gconv gconv_close gconv_db gconv_conf \
|
gconv_open gconv gconv_close gconv_db gconv_conf \
|
||||||
gconv_builtin gconv_simple gconv_trans gconv_cache
|
gconv_builtin gconv_simple gconv_trans gconv_cache
|
||||||
ifeq ($(elf),yes)
|
|
||||||
routines += gconv_dl
|
routines += gconv_dl
|
||||||
else
|
|
||||||
CFLAGS-gconv_db.c = -DSTATIC_GCONV
|
|
||||||
CFLAGS-gconv_cache.c = -DSTATIC_GCONV
|
|
||||||
CFLAGS-gconv_simple.c = -DSTATIC_GCONV
|
|
||||||
endif
|
|
||||||
|
|
||||||
vpath %.c ../locale/programs ../intl
|
vpath %.c ../locale/programs ../intl
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/* Support macros for making weak and strong aliases for symbols,
|
/* Support macros for making weak and strong aliases for symbols,
|
||||||
and for using symbol sets and linker warnings with GNU ld.
|
and for using symbol sets and linker warnings with GNU ld.
|
||||||
Copyright (C) 1995-1998,2000-2006,2008,2009,2011
|
Copyright (C) 1995-1998,2000-2006,2008,2009,2011,2012
|
||||||
Free Software Foundation, Inc.
|
Free Software Foundation, Inc.
|
||||||
This file is part of the GNU C Library.
|
This file is part of the GNU C Library.
|
||||||
|
|
||||||
@ -32,7 +32,6 @@
|
|||||||
* ASM_GLOBAL_DIRECTIVE with `.globl' or `.global'.
|
* ASM_GLOBAL_DIRECTIVE with `.globl' or `.global'.
|
||||||
* ASM_TYPE_DIRECTIVE_PREFIX with `@' or `#' or whatever for .type,
|
* ASM_TYPE_DIRECTIVE_PREFIX with `@' or `#' or whatever for .type,
|
||||||
or leave it undefined if there is no .type directive.
|
or leave it undefined if there is no .type directive.
|
||||||
* HAVE_ELF if using ELF, which supports weak symbols using `.weak'.
|
|
||||||
* HAVE_ASM_WEAK_DIRECTIVE if we have weak symbols using `.weak'.
|
* HAVE_ASM_WEAK_DIRECTIVE if we have weak symbols using `.weak'.
|
||||||
* HAVE_ASM_WEAKEXT_DIRECTIVE if we have weak symbols using `.weakext'.
|
* HAVE_ASM_WEAKEXT_DIRECTIVE if we have weak symbols using `.weakext'.
|
||||||
|
|
||||||
@ -54,8 +53,7 @@
|
|||||||
|
|
||||||
#include <config.h>
|
#include <config.h>
|
||||||
|
|
||||||
/* The symbols in all the user (non-_) macros are C symbols.
|
/* The symbols in all the user (non-_) macros are C symbols. */
|
||||||
NO HAVE_ELF implies a.out. */
|
|
||||||
|
|
||||||
#if defined HAVE_ASM_WEAK_DIRECTIVE || defined HAVE_ASM_WEAKEXT_DIRECTIVE
|
#if defined HAVE_ASM_WEAK_DIRECTIVE || defined HAVE_ASM_WEAKEXT_DIRECTIVE
|
||||||
# define HAVE_WEAK_SYMBOLS
|
# define HAVE_WEAK_SYMBOLS
|
||||||
@ -222,51 +220,35 @@
|
|||||||
|
|
||||||
/* When a reference to SYMBOL is encountered, the linker will emit a
|
/* When a reference to SYMBOL is encountered, the linker will emit a
|
||||||
warning message MSG. */
|
warning message MSG. */
|
||||||
#ifdef HAVE_ELF
|
|
||||||
|
|
||||||
/* We want the .gnu.warning.SYMBOL section to be unallocated. */
|
/* We want the .gnu.warning.SYMBOL section to be unallocated. */
|
||||||
# ifdef HAVE_ASM_PREVIOUS_DIRECTIVE
|
#ifdef HAVE_ASM_PREVIOUS_DIRECTIVE
|
||||||
# define __make_section_unallocated(section_string) \
|
# define __make_section_unallocated(section_string) \
|
||||||
asm (".section " section_string "\n\t.previous");
|
asm (".section " section_string "\n\t.previous");
|
||||||
# elif defined HAVE_ASM_POPSECTION_DIRECTIVE
|
#elif defined HAVE_ASM_POPSECTION_DIRECTIVE
|
||||||
# define __make_section_unallocated(section_string) \
|
# define __make_section_unallocated(section_string) \
|
||||||
asm (".pushsection " section_string "\n\t.popsection");
|
asm (".pushsection " section_string "\n\t.popsection");
|
||||||
# else
|
#else
|
||||||
# define __make_section_unallocated(section_string)
|
# define __make_section_unallocated(section_string)
|
||||||
# endif
|
#endif
|
||||||
|
|
||||||
/* Tacking on "\n\t#" to the section name makes gcc put it's bogus
|
/* Tacking on "\n\t#" to the section name makes gcc put it's bogus
|
||||||
section attributes on what looks like a comment to the assembler. */
|
section attributes on what looks like a comment to the assembler. */
|
||||||
# ifdef HAVE_SECTION_QUOTES
|
#ifdef HAVE_SECTION_QUOTES
|
||||||
# define __sec_comment "\"\n\t#\""
|
# define __sec_comment "\"\n\t#\""
|
||||||
# else
|
#else
|
||||||
# define __sec_comment "\n\t#"
|
# define __sec_comment "\n\t#"
|
||||||
# endif
|
#endif
|
||||||
# define link_warning(symbol, msg) \
|
#define link_warning(symbol, msg) \
|
||||||
__make_section_unallocated (".gnu.warning." #symbol) \
|
__make_section_unallocated (".gnu.warning." #symbol) \
|
||||||
static const char __evoke_link_warning_##symbol[] \
|
static const char __evoke_link_warning_##symbol[] \
|
||||||
__attribute__ ((used, section (".gnu.warning." #symbol __sec_comment))) \
|
__attribute__ ((used, section (".gnu.warning." #symbol __sec_comment))) \
|
||||||
= msg;
|
= msg;
|
||||||
# define libc_freeres_ptr(decl) \
|
#define libc_freeres_ptr(decl) \
|
||||||
__make_section_unallocated ("__libc_freeres_ptrs, \"aw\", %nobits") \
|
__make_section_unallocated ("__libc_freeres_ptrs, \"aw\", %nobits") \
|
||||||
decl __attribute__ ((section ("__libc_freeres_ptrs" __sec_comment)))
|
decl __attribute__ ((section ("__libc_freeres_ptrs" __sec_comment)))
|
||||||
# define __libc_freeres_fn_section \
|
#define __libc_freeres_fn_section \
|
||||||
__attribute__ ((section ("__libc_freeres_fn")))
|
__attribute__ ((section ("__libc_freeres_fn")))
|
||||||
#else /* Not ELF: a.out */
|
|
||||||
# ifdef HAVE_XCOFF
|
|
||||||
/* XCOFF does not support .stabs.
|
|
||||||
The native aix linker will remove the .stab and .stabstr sections
|
|
||||||
The gnu linker will have a fatal error if there is a relocation for
|
|
||||||
symbol in the .stab section. Silently disable this macro. */
|
|
||||||
# define link_warning(symbol, msg)
|
|
||||||
# else
|
|
||||||
# define link_warning(symbol, msg) \
|
|
||||||
asm (".stabs \"" msg "\",30,0,0,0\n\t" \
|
|
||||||
".stabs \"" __SYMBOL_PREFIX #symbol "\",1,0,0,0\n");
|
|
||||||
# endif /* XCOFF */
|
|
||||||
# define libc_freeres_ptr(decl) decl
|
|
||||||
# define __libc_freeres_fn_section
|
|
||||||
#endif
|
|
||||||
#define libc_freeres_fn(name) \
|
#define libc_freeres_fn(name) \
|
||||||
static void name (void) __attribute_used__ __libc_freeres_fn_section; \
|
static void name (void) __attribute_used__ __libc_freeres_fn_section; \
|
||||||
text_set_element (__libc_subfreeres, name); \
|
text_set_element (__libc_subfreeres, name); \
|
||||||
@ -337,77 +319,50 @@ for linking")
|
|||||||
|
|
||||||
/* Symbol set support macros. */
|
/* Symbol set support macros. */
|
||||||
|
|
||||||
#ifdef HAVE_ELF
|
|
||||||
|
|
||||||
/* Make SYMBOL, which is in the text segment, an element of SET. */
|
/* Make SYMBOL, which is in the text segment, an element of SET. */
|
||||||
# define text_set_element(set, symbol) _elf_set_element(set, symbol)
|
#define text_set_element(set, symbol) _elf_set_element(set, symbol)
|
||||||
/* Make SYMBOL, which is in the data segment, an element of SET. */
|
/* Make SYMBOL, which is in the data segment, an element of SET. */
|
||||||
# define data_set_element(set, symbol) _elf_set_element(set, symbol)
|
#define data_set_element(set, symbol) _elf_set_element(set, symbol)
|
||||||
/* Make SYMBOL, which is in the bss segment, an element of SET. */
|
/* Make SYMBOL, which is in the bss segment, an element of SET. */
|
||||||
# define bss_set_element(set, symbol) _elf_set_element(set, symbol)
|
#define bss_set_element(set, symbol) _elf_set_element(set, symbol)
|
||||||
|
|
||||||
/* These are all done the same way in ELF.
|
/* These are all done the same way in ELF.
|
||||||
There is a new section created for each set. */
|
There is a new section created for each set. */
|
||||||
# ifdef SHARED
|
#ifdef SHARED
|
||||||
/* When building a shared library, make the set section writable,
|
/* When building a shared library, make the set section writable,
|
||||||
because it will need to be relocated at run time anyway. */
|
because it will need to be relocated at run time anyway. */
|
||||||
# define _elf_set_element(set, symbol) \
|
# define _elf_set_element(set, symbol) \
|
||||||
static const void *__elf_set_##set##_element_##symbol##__ \
|
static const void *__elf_set_##set##_element_##symbol##__ \
|
||||||
__attribute__ ((used, section (#set))) = &(symbol)
|
__attribute__ ((used, section (#set))) = &(symbol)
|
||||||
# else
|
#else
|
||||||
# define _elf_set_element(set, symbol) \
|
# define _elf_set_element(set, symbol) \
|
||||||
static const void *const __elf_set_##set##_element_##symbol##__ \
|
static const void *const __elf_set_##set##_element_##symbol##__ \
|
||||||
__attribute__ ((used, section (#set))) = &(symbol)
|
__attribute__ ((used, section (#set))) = &(symbol)
|
||||||
# endif
|
#endif
|
||||||
|
|
||||||
/* Define SET as a symbol set. This may be required (it is in a.out) to
|
/* Define SET as a symbol set. This may be required (it is in a.out) to
|
||||||
be able to use the set's contents. */
|
be able to use the set's contents. */
|
||||||
# define symbol_set_define(set) symbol_set_declare(set)
|
#define symbol_set_define(set) symbol_set_declare(set)
|
||||||
|
|
||||||
/* Declare SET for use in this module, if defined in another module.
|
/* Declare SET for use in this module, if defined in another module.
|
||||||
In a shared library, this is always local to that shared object.
|
In a shared library, this is always local to that shared object.
|
||||||
For static linking, the set might be wholly absent and so we use
|
For static linking, the set might be wholly absent and so we use
|
||||||
weak references. */
|
weak references. */
|
||||||
# define symbol_set_declare(set) \
|
#define symbol_set_declare(set) \
|
||||||
extern char const __start_##set[] __symbol_set_attribute; \
|
extern char const __start_##set[] __symbol_set_attribute; \
|
||||||
extern char const __stop_##set[] __symbol_set_attribute;
|
extern char const __stop_##set[] __symbol_set_attribute;
|
||||||
# ifdef SHARED
|
#ifdef SHARED
|
||||||
# define __symbol_set_attribute attribute_hidden
|
# define __symbol_set_attribute attribute_hidden
|
||||||
# else
|
#else
|
||||||
# define __symbol_set_attribute __attribute__ ((weak))
|
# define __symbol_set_attribute __attribute__ ((weak))
|
||||||
# endif
|
#endif
|
||||||
|
|
||||||
/* Return a pointer (void *const *) to the first element of SET. */
|
/* Return a pointer (void *const *) to the first element of SET. */
|
||||||
# define symbol_set_first_element(set) ((void *const *) (&__start_##set))
|
#define symbol_set_first_element(set) ((void *const *) (&__start_##set))
|
||||||
|
|
||||||
/* Return true iff PTR (a void *const *) has been incremented
|
/* Return true iff PTR (a void *const *) has been incremented
|
||||||
past the last element in SET. */
|
past the last element in SET. */
|
||||||
# define symbol_set_end_p(set, ptr) ((ptr) >= (void *const *) &__stop_##set)
|
#define symbol_set_end_p(set, ptr) ((ptr) >= (void *const *) &__stop_##set)
|
||||||
|
|
||||||
#else /* Not ELF: a.out. */
|
|
||||||
|
|
||||||
# ifdef HAVE_XCOFF
|
|
||||||
/* XCOFF does not support .stabs.
|
|
||||||
The native aix linker will remove the .stab and .stabstr sections
|
|
||||||
The gnu linker will have a fatal error if there is a relocation for
|
|
||||||
symbol in the .stab section. Silently disable these macros. */
|
|
||||||
# define text_set_element(set, symbol)
|
|
||||||
# define data_set_element(set, symbol)
|
|
||||||
# define bss_set_element(set, symbol)
|
|
||||||
# else
|
|
||||||
# define text_set_element(set, symbol) \
|
|
||||||
asm (".stabs \"" __SYMBOL_PREFIX #set "\",23,0,0," __SYMBOL_PREFIX #symbol)
|
|
||||||
# define data_set_element(set, symbol) \
|
|
||||||
asm (".stabs \"" __SYMBOL_PREFIX #set "\",25,0,0," __SYMBOL_PREFIX #symbol)
|
|
||||||
# define bss_set_element(set, symbol) ?error Must use initialized data.
|
|
||||||
# endif /* XCOFF */
|
|
||||||
# define symbol_set_define(set) void *const (set)[1];
|
|
||||||
# define symbol_set_declare(set) extern void *const (set)[1];
|
|
||||||
|
|
||||||
# define symbol_set_first_element(set) &(set)[1]
|
|
||||||
# define symbol_set_end_p(set, ptr) (*(ptr) == 0)
|
|
||||||
|
|
||||||
#endif /* ELF. */
|
|
||||||
|
|
||||||
#if DO_VERSIONING
|
#if DO_VERSIONING
|
||||||
# define symbol_version(real, name, version) \
|
# define symbol_version(real, name, version) \
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/* Macros for managing ABI-compatibility definitions using ELF symbol versions.
|
/* Macros for managing ABI-compatibility definitions using ELF symbol versions.
|
||||||
Copyright (C) 2000, 2002, 2006 Free Software Foundation, Inc.
|
Copyright (C) 2000, 2002, 2006, 2012 Free Software Foundation, Inc.
|
||||||
This file is part of the GNU C Library.
|
This file is part of the GNU C Library.
|
||||||
|
|
||||||
The GNU C Library is free software; you can redistribute it and/or
|
The GNU C Library is free software; you can redistribute it and/or
|
||||||
@ -20,13 +20,13 @@
|
|||||||
#ifndef _SHLIB_COMPAT_H
|
#ifndef _SHLIB_COMPAT_H
|
||||||
#define _SHLIB_COMPAT_H 1
|
#define _SHLIB_COMPAT_H 1
|
||||||
|
|
||||||
#if defined HAVE_ELF && defined DO_VERSIONING
|
#if defined DO_VERSIONING
|
||||||
/* Since there is just one set of .d files generated, we need to
|
/* Since there is just one set of .d files generated, we need to
|
||||||
include this unconditionally to have the dependency noticed properly. */
|
include this unconditionally to have the dependency noticed properly. */
|
||||||
#include <abi-versions.h> /* header generated by abi-versions.awk */
|
#include <abi-versions.h> /* header generated by abi-versions.awk */
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined HAVE_ELF && defined SHARED && defined DO_VERSIONING
|
#if defined SHARED && defined DO_VERSIONING
|
||||||
|
|
||||||
/* The file abi-versions.h (generated by scripts/abi-versions.awk) defines
|
/* The file abi-versions.h (generated by scripts/abi-versions.awk) defines
|
||||||
symbols like `ABI_libm_GLIBC_2_0' for each version set in the source
|
symbols like `ABI_libm_GLIBC_2_0' for each version set in the source
|
||||||
|
@ -1,5 +1,7 @@
|
|||||||
2012-01-07 Ulrich Drepper <drepper@gmail.com>
|
2012-01-07 Ulrich Drepper <drepper@gmail.com>
|
||||||
|
|
||||||
|
* Makefile: Remove elf=yes test, only ELF is supported.
|
||||||
|
|
||||||
* shlib-versions: Remove entries for ports architectures.
|
* shlib-versions: Remove entries for ports architectures.
|
||||||
|
|
||||||
In case anyone cares, the IA-64 architecture could move to ports.
|
In case anyone cares, the IA-64 architecture could move to ports.
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
# Copyright (C) 2002-2008,2009,2010 Free Software Foundation, Inc.
|
# Copyright (C) 2002-2008,2009,2010,2012 Free Software Foundation, Inc.
|
||||||
# This file is part of the GNU C Library.
|
# This file is part of the GNU C Library.
|
||||||
|
|
||||||
# The GNU C Library is free software; you can redistribute it and/or
|
# The GNU C Library is free software; you can redistribute it and/or
|
||||||
@ -519,7 +519,7 @@ $(objpfx)libpthread.so: +postinit += $(addprefix $(objpfx),$(crtn-objs))
|
|||||||
# Depend on ld.so too to get proper versions of ld.so symbols.
|
# Depend on ld.so too to get proper versions of ld.so symbols.
|
||||||
$(objpfx)libpthread.so: $(common-objpfx)libc.so \
|
$(objpfx)libpthread.so: $(common-objpfx)libc.so \
|
||||||
$(common-objpfx)libc_nonshared.a \
|
$(common-objpfx)libc_nonshared.a \
|
||||||
$(if $(filter yes,$(elf)), $(elfobjdir)/ld.so)
|
$(elfobjdir)/ld.so
|
||||||
|
|
||||||
# Make sure we link with the thread library.
|
# Make sure we link with the thread library.
|
||||||
ifeq ($(build-shared),yes)
|
ifeq ($(build-shared),yes)
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
# Copyright (C) 1994-2001,2003,2004,2007,2008,2011
|
# Copyright (C) 1994-2001,2003,2004,2007,2008,2011,2012
|
||||||
# Free Software Foundation, Inc.
|
# Free Software Foundation, Inc.
|
||||||
# This file is part of the GNU C Library.
|
# This file is part of the GNU C Library.
|
||||||
|
|
||||||
@ -91,7 +91,7 @@ CFLAGS-res_hconf.c = -fexceptions
|
|||||||
$(objpfx)libresolv.so: $(common-objpfx)libc.so $(common-objpfx)libc_nonshared.a
|
$(objpfx)libresolv.so: $(common-objpfx)libc.so $(common-objpfx)libc_nonshared.a
|
||||||
# Some hosts need '__stack_chk_guard', so pull in the definition from
|
# Some hosts need '__stack_chk_guard', so pull in the definition from
|
||||||
# ld.so if required.
|
# ld.so if required.
|
||||||
ifeq (yesyes,$(have-ssp)$(elf))
|
ifeq (yes,$(have-ssp))
|
||||||
LDLIBS-resolv.so += $(as-needed) $(elfobjdir)/ld.so $(no-as-needed)
|
LDLIBS-resolv.so += $(as-needed) $(elfobjdir)/ld.so $(no-as-needed)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
@ -133,7 +133,7 @@ extern __thread struct __res_state *__libc_resp
|
|||||||
|
|
||||||
/* We declare this with compat_symbol so that it's not
|
/* We declare this with compat_symbol so that it's not
|
||||||
visible at link time. Programs must use the accessor functions. */
|
visible at link time. Programs must use the accessor functions. */
|
||||||
#if defined HAVE_ELF && defined SHARED && defined DO_VERSIONING
|
#if defined SHARED && defined DO_VERSIONING
|
||||||
# include <shlib-compat.h>
|
# include <shlib-compat.h>
|
||||||
compat_symbol (libc, _res, _res, GLIBC_2_0);
|
compat_symbol (libc, _res, _res, GLIBC_2_0);
|
||||||
#endif
|
#endif
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
# Copyright (C) 1997-2004, 2006, 2007 Free Software Foundation, Inc.
|
# Copyright (C) 1997-2004, 2006, 2007, 2012 Free Software Foundation, Inc.
|
||||||
# This file is part of the GNU C Library.
|
# This file is part of the GNU C Library.
|
||||||
|
|
||||||
# The GNU C Library is free software; you can redistribute it and/or
|
# The GNU C Library is free software; you can redistribute it and/or
|
||||||
@ -69,7 +69,7 @@ LDFLAGS-rt.so = -Wl,--enable-new-dtags,-z,nodelete
|
|||||||
# a statically-linked program that hasn't already loaded it.
|
# a statically-linked program that hasn't already loaded it.
|
||||||
$(objpfx)librt.so: $(common-objpfx)libc.so $(common-objpfx)libc_nonshared.a \
|
$(objpfx)librt.so: $(common-objpfx)libc.so $(common-objpfx)libc_nonshared.a \
|
||||||
$(shared-thread-library) \
|
$(shared-thread-library) \
|
||||||
$(if $(filter yes,$(elf)), $(elfobjdir)/ld.so)
|
$(elfobjdir)/ld.so
|
||||||
|
|
||||||
ifeq (yes,$(build-shared))
|
ifeq (yes,$(build-shared))
|
||||||
$(addprefix $(objpfx),$(tests)): $(objpfx)librt.so $(shared-thread-library)
|
$(addprefix $(objpfx),$(tests)): $(objpfx)librt.so $(shared-thread-library)
|
||||||
@ -84,5 +84,5 @@ tst-mqueue7-ARGS = -- $(built-program-cmd)
|
|||||||
|
|
||||||
ifeq (yes,$(build-static-nss))
|
ifeq (yes,$(build-static-nss))
|
||||||
otherlibs += $(nssobjdir)/libnss_files.a $(resolvobjdir)/libnss_dns.a \
|
otherlibs += $(nssobjdir)/libnss_files.a $(resolvobjdir)/libnss_dns.a \
|
||||||
$(resolvobjdir)/libresolv.a
|
$(resolvobjdir)/libresolv.a
|
||||||
endif
|
endif
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/* Definitions for x86 syntax variations.
|
/* Definitions for x86 syntax variations.
|
||||||
Copyright (C) 1992, 1994, 1995, 1997, 2000 Free Software Foundation, Inc.
|
Copyright (C) 1992,1994,1995,1997,2000,2012 Free Software Foundation, Inc.
|
||||||
This file is part of the GNU C Library. Its master source is NOT part of
|
This file is part of the GNU C Library. Its master source is NOT part of
|
||||||
the C library, however. The master source lives in the GNU MP Library.
|
the C library, however. The master source lives in the GNU MP Library.
|
||||||
|
|
||||||
@ -19,11 +19,7 @@
|
|||||||
02111-1307 USA. */
|
02111-1307 USA. */
|
||||||
|
|
||||||
#undef ALIGN
|
#undef ALIGN
|
||||||
#if defined NOLOG_ALIGN || defined HAVE_ELF
|
#define ALIGN(log) .align 1<<log
|
||||||
# define ALIGN(log) .align 1<<log
|
|
||||||
#else
|
|
||||||
# define ALIGN(log) .align log
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#undef L
|
#undef L
|
||||||
#ifdef __ELF__
|
#ifdef __ELF__
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/* Assembler macros for i386.
|
/* Assembler macros for i386.
|
||||||
Copyright (C) 1991-93,95,96,98,2002,2003,2005,2006,2011
|
Copyright (C) 1991-93,95,96,98,2002,2003,2005,2006,2011,2012
|
||||||
Free Software Foundation, Inc.
|
Free Software Foundation, Inc.
|
||||||
This file is part of the GNU C Library.
|
This file is part of the GNU C Library.
|
||||||
|
|
||||||
@ -24,8 +24,6 @@
|
|||||||
|
|
||||||
/* Syntactic details of assembler. */
|
/* Syntactic details of assembler. */
|
||||||
|
|
||||||
#ifdef HAVE_ELF
|
|
||||||
|
|
||||||
/* ELF uses byte-counts for .align, most others use log2 of count of bytes. */
|
/* ELF uses byte-counts for .align, most others use log2 of count of bytes. */
|
||||||
#define ALIGNARG(log2) 1<<log2
|
#define ALIGNARG(log2) 1<<log2
|
||||||
/* For ELF we need the `.type' directive to make shared libs work right. */
|
/* For ELF we need the `.type' directive to make shared libs work right. */
|
||||||
@ -36,14 +34,6 @@
|
|||||||
#undef NO_UNDERSCORES
|
#undef NO_UNDERSCORES
|
||||||
#define NO_UNDERSCORES
|
#define NO_UNDERSCORES
|
||||||
|
|
||||||
#else
|
|
||||||
|
|
||||||
#define ALIGNARG(log2) log2
|
|
||||||
#define ASM_TYPE_DIRECTIVE(name,type) /* Nothing is specified. */
|
|
||||||
#define ASM_SIZE_DIRECTIVE(name) /* Nothing is specified. */
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
/* Define an entry point visible from C.
|
/* Define an entry point visible from C.
|
||||||
|
|
||||||
@ -160,11 +150,7 @@ __i686.get_pc_thunk.reg: \
|
|||||||
|
|
||||||
/* Local label name for asm code. */
|
/* Local label name for asm code. */
|
||||||
#ifndef L
|
#ifndef L
|
||||||
#ifdef HAVE_ELF
|
|
||||||
#define L(name) .L##name
|
#define L(name) .L##name
|
||||||
#else
|
|
||||||
#define L(name) name
|
|
||||||
#endif
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define atom_text_section .section ".text.atom", "ax"
|
#define atom_text_section .section ".text.atom", "ax"
|
||||||
|
@ -10,7 +10,7 @@
|
|||||||
SHLIB_COMPAT(lib, introduced, LONG_DOUBLE_COMPAT_VERSION)
|
SHLIB_COMPAT(lib, introduced, LONG_DOUBLE_COMPAT_VERSION)
|
||||||
#define long_double_symbol(lib, local, symbol) \
|
#define long_double_symbol(lib, local, symbol) \
|
||||||
long_double_symbol_1 (lib, local, symbol, LONG_DOUBLE_COMPAT_VERSION)
|
long_double_symbol_1 (lib, local, symbol, LONG_DOUBLE_COMPAT_VERSION)
|
||||||
#if defined HAVE_ELF && defined SHARED && defined DO_VERSIONING
|
#if defined SHARED && defined DO_VERSIONING
|
||||||
# define ldbl_hidden_def(local, name) libc_hidden_ver (local, name)
|
# define ldbl_hidden_def(local, name) libc_hidden_ver (local, name)
|
||||||
# define ldbl_strong_alias(name, aliasname) \
|
# define ldbl_strong_alias(name, aliasname) \
|
||||||
strong_alias (name, __GL_##name##_##aliasname) \
|
strong_alias (name, __GL_##name##_##aliasname) \
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
/* Copyright (C) 1994, 1995, 1997 Free Software Foundation, Inc.
|
/* Copyright (C) 1994, 1995, 1997, 2012 Free Software Foundation, Inc.
|
||||||
This file is part of the GNU C Library.
|
This file is part of the GNU C Library.
|
||||||
|
|
||||||
The GNU C Library is free software; you can redistribute it and/or
|
The GNU C Library is free software; you can redistribute it and/or
|
||||||
@ -28,7 +28,6 @@
|
|||||||
#define EXT(x) C_SYMBOL_NAME(x)
|
#define EXT(x) C_SYMBOL_NAME(x)
|
||||||
#define LEXT(x) C_SYMBOL_NAME(x##:)
|
#define LEXT(x) C_SYMBOL_NAME(x##:)
|
||||||
|
|
||||||
#ifdef HAVE_ELF
|
|
||||||
/* For ELF we need to add the `.type' directive to make shared libraries
|
/* For ELF we need to add the `.type' directive to make shared libraries
|
||||||
work right. */
|
work right. */
|
||||||
#undef ENTRY
|
#undef ENTRY
|
||||||
@ -37,7 +36,6 @@
|
|||||||
.align ALIGN; \
|
.align ALIGN; \
|
||||||
.type name,@function; \
|
.type name,@function; \
|
||||||
name:
|
name:
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -23,7 +23,6 @@ pic-ccflag = -fpic
|
|||||||
endif
|
endif
|
||||||
|
|
||||||
ifeq ($(subdir),csu)
|
ifeq ($(subdir),csu)
|
||||||
ifneq ($(elf),no)
|
|
||||||
# The initfini generation code doesn't work in the presence of -fPIC, so
|
# The initfini generation code doesn't work in the presence of -fPIC, so
|
||||||
# we use -fpic instead which is much better.
|
# we use -fpic instead which is much better.
|
||||||
CFLAGS-initfini.s += -fpic -O1
|
CFLAGS-initfini.s += -fpic -O1
|
||||||
@ -32,7 +31,7 @@ CFLAGS-initfini.s += -fpic -O1
|
|||||||
# of the library should be able to control what goes into sdata.
|
# of the library should be able to control what goes into sdata.
|
||||||
CFLAGS-init.o = -G0
|
CFLAGS-init.o = -G0
|
||||||
CFLAGS-gmon-start.o = -G0
|
CFLAGS-gmon-start.o = -G0
|
||||||
endif
|
|
||||||
ifeq (yes,$(build-shared))
|
ifeq (yes,$(build-shared))
|
||||||
# Compatibility
|
# Compatibility
|
||||||
ifeq (yes,$(have-protected))
|
ifeq (yes,$(have-protected))
|
||||||
|
@ -28,12 +28,10 @@ no-special-regs := $(sort $(foreach n,40 41 50 51 60 61 62 63 \
|
|||||||
ifeq ($(subdir),csu)
|
ifeq ($(subdir),csu)
|
||||||
sysdep_routines += hp-timing
|
sysdep_routines += hp-timing
|
||||||
elide-routines.os += hp-timing
|
elide-routines.os += hp-timing
|
||||||
ifneq ($(elf),no)
|
|
||||||
# The initfini generation code doesn't work in the presence of -fPIC, so
|
# The initfini generation code doesn't work in the presence of -fPIC, so
|
||||||
# we use -fpic instead which is much better.
|
# we use -fpic instead which is much better.
|
||||||
CFLAGS-initfini.s += -fpic -O1
|
CFLAGS-initfini.s += -fpic -O1
|
||||||
endif
|
endif
|
||||||
endif
|
|
||||||
|
|
||||||
ifeq ($(subdir),elf)
|
ifeq ($(subdir),elf)
|
||||||
# help gcc inline asm code from dl-machine.h
|
# help gcc inline asm code from dl-machine.h
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/* Definitions for S/390 syntax variations.
|
/* Definitions for S/390 syntax variations.
|
||||||
Copyright (C) 1992, 1994, 1995, 1997, 2000 Free Software Foundation, Inc.
|
Copyright (C) 1992, 1994, 1995, 1997, 2000, 2012 Free Software Foundation, Inc.
|
||||||
This file is part of the GNU C Library. Its master source is NOT part of
|
This file is part of the GNU C Library. Its master source is NOT part of
|
||||||
the C library, however. The master source lives in the GNU MP Library.
|
the C library, however. The master source lives in the GNU MP Library.
|
||||||
|
|
||||||
@ -19,11 +19,7 @@
|
|||||||
02111-1307 USA. */
|
02111-1307 USA. */
|
||||||
|
|
||||||
#undef ALIGN
|
#undef ALIGN
|
||||||
#if defined NOLOG_ALIGN || defined HAVE_ELF
|
#define ALIGN(log) .align 1<<log
|
||||||
# define ALIGN(log) .align 1<<log
|
|
||||||
#else
|
|
||||||
# define ALIGN(log) .align log
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#undef L
|
#undef L
|
||||||
#ifdef __ELF__
|
#ifdef __ELF__
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/* Assembler macros for s390.
|
/* Assembler macros for s390.
|
||||||
Copyright (C) 2000, 2001, 2003 Free Software Foundation, Inc.
|
Copyright (C) 2000, 2001, 2003, 2012 Free Software Foundation, Inc.
|
||||||
Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com).
|
Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com).
|
||||||
This file is part of the GNU C Library.
|
This file is part of the GNU C Library.
|
||||||
|
|
||||||
@ -24,8 +24,6 @@
|
|||||||
|
|
||||||
/* Syntactic details of assembler. */
|
/* Syntactic details of assembler. */
|
||||||
|
|
||||||
#ifdef HAVE_ELF
|
|
||||||
|
|
||||||
/* ELF uses byte-counts for .align, most others use log2 of count of bytes. */
|
/* ELF uses byte-counts for .align, most others use log2 of count of bytes. */
|
||||||
#define ALIGNARG(log2) 1<<log2
|
#define ALIGNARG(log2) 1<<log2
|
||||||
/* For ELF we need the `.type' directive to make shared libs work right. */
|
/* For ELF we need the `.type' directive to make shared libs work right. */
|
||||||
@ -36,14 +34,6 @@
|
|||||||
#undef NO_UNDERSCORES
|
#undef NO_UNDERSCORES
|
||||||
#define NO_UNDERSCORES
|
#define NO_UNDERSCORES
|
||||||
|
|
||||||
#else
|
|
||||||
|
|
||||||
#define ALIGNARG(log2) log2
|
|
||||||
#define ASM_TYPE_DIRECTIVE(name,type) /* Nothing is specified. */
|
|
||||||
#define ASM_SIZE_DIRECTIVE(name) /* Nothing is specified. */
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
/* Define an entry point visible from C. */
|
/* Define an entry point visible from C. */
|
||||||
#define ENTRY(name) \
|
#define ENTRY(name) \
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/* Assembler macros for 64 bit S/390.
|
/* Assembler macros for 64 bit S/390.
|
||||||
Copyright (C) 2001, 2003 Free Software Foundation, Inc.
|
Copyright (C) 2001, 2003, 2012 Free Software Foundation, Inc.
|
||||||
Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com).
|
Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com).
|
||||||
This file is part of the GNU C Library.
|
This file is part of the GNU C Library.
|
||||||
|
|
||||||
@ -24,8 +24,6 @@
|
|||||||
|
|
||||||
/* Syntactic details of assembler. */
|
/* Syntactic details of assembler. */
|
||||||
|
|
||||||
#ifdef HAVE_ELF
|
|
||||||
|
|
||||||
/* ELF uses byte-counts for .align, most others use log2 of count of bytes. */
|
/* ELF uses byte-counts for .align, most others use log2 of count of bytes. */
|
||||||
#define ALIGNARG(log2) 1<<log2
|
#define ALIGNARG(log2) 1<<log2
|
||||||
/* For ELF we need the `.type' directive to make shared libs work right. */
|
/* For ELF we need the `.type' directive to make shared libs work right. */
|
||||||
@ -36,14 +34,6 @@
|
|||||||
#undef NO_UNDERSCORES
|
#undef NO_UNDERSCORES
|
||||||
#define NO_UNDERSCORES
|
#define NO_UNDERSCORES
|
||||||
|
|
||||||
#else
|
|
||||||
|
|
||||||
#define ALIGNARG(log2) log2
|
|
||||||
#define ASM_TYPE_DIRECTIVE(name,type) /* Nothing is specified. */
|
|
||||||
#define ASM_SIZE_DIRECTIVE(name) /* Nothing is specified. */
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
/* Define an entry point visible from C. */
|
/* Define an entry point visible from C. */
|
||||||
#define ENTRY(name) \
|
#define ENTRY(name) \
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/* Assembler macros for SH.
|
/* Assembler macros for SH.
|
||||||
Copyright (C) 1999, 2000, 2005 Free Software Foundation, Inc.
|
Copyright (C) 1999, 2000, 2005, 2012 Free Software Foundation, Inc.
|
||||||
This file is part of the GNU C Library.
|
This file is part of the GNU C Library.
|
||||||
|
|
||||||
The GNU C Library is free software; you can redistribute it and/or
|
The GNU C Library is free software; you can redistribute it and/or
|
||||||
@ -23,8 +23,6 @@
|
|||||||
|
|
||||||
/* Syntactic details of assembler. */
|
/* Syntactic details of assembler. */
|
||||||
|
|
||||||
#ifdef HAVE_ELF
|
|
||||||
|
|
||||||
#define ALIGNARG(log2) log2
|
#define ALIGNARG(log2) log2
|
||||||
/* For ELF we need the `.type' directive to make shared libs work right. */
|
/* For ELF we need the `.type' directive to make shared libs work right. */
|
||||||
#define ASM_TYPE_DIRECTIVE(name,typearg) .type name,@##typearg;
|
#define ASM_TYPE_DIRECTIVE(name,typearg) .type name,@##typearg;
|
||||||
@ -36,15 +34,6 @@
|
|||||||
#define PLTJMP(_x) _x
|
#define PLTJMP(_x) _x
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#else
|
|
||||||
|
|
||||||
#define ALIGNARG(log2) log2
|
|
||||||
#define ASM_TYPE_DIRECTIVE(name,type) /* Nothing is specified. */
|
|
||||||
#define ASM_SIZE_DIRECTIVE(name) /* Nothing is specified. */
|
|
||||||
|
|
||||||
#define PLTJMP(_x) _x
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* Define an entry point visible from C. */
|
/* Define an entry point visible from C. */
|
||||||
#define ENTRY(name) \
|
#define ENTRY(name) \
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/* Copyright (C) 1993, 1994, 1995, 1997, 2003, 2011
|
/* Copyright (C) 1993, 1994, 1995, 1997, 2003, 2011, 2012
|
||||||
Free Software Foundation, Inc.
|
Free Software Foundation, Inc.
|
||||||
This file is part of the GNU C Library.
|
This file is part of the GNU C Library.
|
||||||
|
|
||||||
The GNU C Library is free software; you can redistribute it and/or
|
The GNU C Library is free software; you can redistribute it and/or
|
||||||
@ -49,20 +49,12 @@ __sparc_get_pc_thunk.reg: \
|
|||||||
mov %##tmp, %o7;
|
mov %##tmp, %o7;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef HAVE_ELF
|
|
||||||
#define ENTRY(name) \
|
#define ENTRY(name) \
|
||||||
.global C_SYMBOL_NAME(name); \
|
.global C_SYMBOL_NAME(name); \
|
||||||
.type name,@function; \
|
.type name,@function; \
|
||||||
.align 4; \
|
.align 4; \
|
||||||
C_LABEL(name)
|
C_LABEL(name)
|
||||||
|
|
||||||
#else
|
|
||||||
#define ENTRY(name) \
|
|
||||||
.global C_SYMBOL_NAME(name); \
|
|
||||||
.align 4; \
|
|
||||||
C_LABEL(name)
|
|
||||||
|
|
||||||
#endif /* HAVE_ELF */
|
|
||||||
|
|
||||||
#define PSEUDO(name, syscall_name, args) \
|
#define PSEUDO(name, syscall_name, args) \
|
||||||
.global syscall_error; \
|
.global syscall_error; \
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/* 64-bit multiplication and division
|
/* 64-bit multiplication and division
|
||||||
Copyright (C) 1989, 1992-1999,2000,2001,2002,2003,2004,2005
|
Copyright (C) 1989, 1992-1999,2000,2001,2002,2003,2004,2005,2012
|
||||||
Free Software Foundation, Inc.
|
Free Software Foundation, Inc.
|
||||||
This file is part of the GNU C Library.
|
This file is part of the GNU C Library.
|
||||||
|
|
||||||
@ -335,7 +335,7 @@ strong_alias (__umoddi3, __umoddi3_internal)
|
|||||||
|
|
||||||
/* We declare these with compat_symbol so that they are not visible at
|
/* We declare these with compat_symbol so that they are not visible at
|
||||||
link time. Programs must use the functions from libgcc. */
|
link time. Programs must use the functions from libgcc. */
|
||||||
#if defined HAVE_ELF && defined SHARED && defined DO_VERSIONING
|
#if defined SHARED && defined DO_VERSIONING
|
||||||
# include <shlib-compat.h>
|
# include <shlib-compat.h>
|
||||||
compat_symbol (libc, __divdi3, __divdi3, GLIBC_2_0);
|
compat_symbol (libc, __divdi3, __divdi3, GLIBC_2_0);
|
||||||
compat_symbol (libc, __moddi3, __moddi3, GLIBC_2_0);
|
compat_symbol (libc, __moddi3, __moddi3, GLIBC_2_0);
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/* Assembler macros for x86-64.
|
/* Assembler macros for x86-64.
|
||||||
Copyright (C) 2001, 2002, 2003, 2011 Free Software Foundation, Inc.
|
Copyright (C) 2001, 2002, 2003, 2011, 2012 Free Software Foundation, Inc.
|
||||||
This file is part of the GNU C Library.
|
This file is part of the GNU C Library.
|
||||||
|
|
||||||
The GNU C Library is free software; you can redistribute it and/or
|
The GNU C Library is free software; you can redistribute it and/or
|
||||||
@ -23,8 +23,6 @@
|
|||||||
|
|
||||||
/* Syntactic details of assembler. */
|
/* Syntactic details of assembler. */
|
||||||
|
|
||||||
#ifdef HAVE_ELF
|
|
||||||
|
|
||||||
/* ELF uses byte-counts for .align, most others use log2 of count of bytes. */
|
/* ELF uses byte-counts for .align, most others use log2 of count of bytes. */
|
||||||
#define ALIGNARG(log2) 1<<log2
|
#define ALIGNARG(log2) 1<<log2
|
||||||
/* For ELF we need the `.type' directive to make shared libs work right. */
|
/* For ELF we need the `.type' directive to make shared libs work right. */
|
||||||
@ -35,14 +33,6 @@
|
|||||||
#undef NO_UNDERSCORES
|
#undef NO_UNDERSCORES
|
||||||
#define NO_UNDERSCORES
|
#define NO_UNDERSCORES
|
||||||
|
|
||||||
#else
|
|
||||||
|
|
||||||
#define ALIGNARG(log2) log2
|
|
||||||
#define ASM_TYPE_DIRECTIVE(name,type) /* Nothing is specified. */
|
|
||||||
#define ASM_SIZE_DIRECTIVE(name) /* Nothing is specified. */
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
/* Define an entry point visible from C. */
|
/* Define an entry point visible from C. */
|
||||||
#define ENTRY(name) \
|
#define ENTRY(name) \
|
||||||
@ -106,12 +96,8 @@ lose: \
|
|||||||
|
|
||||||
/* Local label name for asm code. */
|
/* Local label name for asm code. */
|
||||||
#ifndef L
|
#ifndef L
|
||||||
# ifdef HAVE_ELF
|
|
||||||
/* ELF-like local names start with `.L'. */
|
/* ELF-like local names start with `.L'. */
|
||||||
# define L(name) .L##name
|
# define L(name) .L##name
|
||||||
# else
|
|
||||||
# define L(name) name
|
|
||||||
# endif
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define atom_text_section .section ".text.atom", "ax"
|
#define atom_text_section .section ".text.atom", "ax"
|
||||||
|
Reference in New Issue
Block a user