mirror of
https://sourceware.org/git/glibc.git
synced 2024-11-21 20:40:05 +00:00
Convert WORDSIZE[32|64]/ld entries to abi-variants
This commit is contained in:
parent
3a85279c0b
commit
0ab0291b84
46
ChangeLog
46
ChangeLog
@ -1,3 +1,49 @@
|
|||||||
|
2012-05-30 H.J. Lu <hongjiu.lu@intel.com>
|
||||||
|
|
||||||
|
[BZ #14112]
|
||||||
|
* Makeconfig (default-abi): New macro.
|
||||||
|
(abi-includes): Likewise.
|
||||||
|
($(common-objpfx)soversions.mk): Remove WORDSIZE check. Use
|
||||||
|
$(abi-$(default-abi)-lib-soname) for soname if defined.
|
||||||
|
($(common-objpfx)gnu/lib-names.stmp): Generate from
|
||||||
|
abi-variants.
|
||||||
|
* Makefile (installed-stubs): Likewise.
|
||||||
|
* include/stubs-biarch.h: Removed.
|
||||||
|
* scripts/lib-names.awk: Only handle one library at a time.
|
||||||
|
* scripts/soversions.awk: Remove WORDSIZE support.
|
||||||
|
* shlib-versions: Remove WORDSIZE and i.86/s390x/powerpc64 ld
|
||||||
|
entries.
|
||||||
|
* sysdeps/unix/sysv/linux/Makefile (syscall-list-variants):
|
||||||
|
Removed.
|
||||||
|
(syscall-list-default-condition): Likewise.
|
||||||
|
(syscall-list-default-condition): Likewise.
|
||||||
|
(syscall-list-includes): Likewise.
|
||||||
|
($(objpfx)bits/syscall%h $(objpfx)bits/syscall%d): Replace
|
||||||
|
syscall-list-* with abi-*. Handle undefined abi-variants.
|
||||||
|
* sysdeps/unix/sysv/linux/i386/Makefile (default-abi): New macro.
|
||||||
|
* sysdeps/unix/sysv/linux/i386/Implies: New file.
|
||||||
|
* sysdeps/unix/sysv/linux/x86/Makefile: Likewise.
|
||||||
|
* sysdeps/unix/sysv/linux/x86_64/64/Makefile: Likewise.
|
||||||
|
* sysdeps/unix/sysv/linux/x86_64/Implies: Add unix/sysv/linux/x86.
|
||||||
|
* sysdeps/unix/sysv/linux/x86_64/Makefile (syscall-list-variants):
|
||||||
|
Removed.
|
||||||
|
(syscall-list-32-options): Likewise.
|
||||||
|
(syscall-list-32-condition): Likewise.
|
||||||
|
(syscall-list-64-options): Likewise.
|
||||||
|
(syscall-list-64-condition): Likewise.
|
||||||
|
* sysdeps/unix/sysv/linux/x86_64/x32/Makefile (default-abi): New
|
||||||
|
macro.
|
||||||
|
* sysdeps/unix/sysv/linux/powerpc/Makefile (syscall-list-*):
|
||||||
|
Renamed to ...
|
||||||
|
(abi-*): This.
|
||||||
|
(abi-64-ld-soname): New macro.
|
||||||
|
* sysdeps/unix/sysv/linux/s390/Makefile: Likewise.
|
||||||
|
* sysdeps/unix/sysv/linux/sparc/Makefile (syscall-list-*):
|
||||||
|
Renamed to ...
|
||||||
|
(abi-*): This.
|
||||||
|
* sysdeps/x86_64/64/shlib-versions: Remove ld entry.
|
||||||
|
* sysdeps/x86_64/x32/shlib-versions: Likewise.
|
||||||
|
|
||||||
2012-05-30 Joseph Myers <joseph@codesourcery.com>
|
2012-05-30 Joseph Myers <joseph@codesourcery.com>
|
||||||
|
|
||||||
* sysdeps/unix/sysv/linux/kernel-features.h
|
* sysdeps/unix/sysv/linux/kernel-features.h
|
||||||
|
56
Makeconfig
56
Makeconfig
@ -791,6 +791,24 @@ ifeq (yes, $(build-shared))
|
|||||||
sed '/^[ ]*#/d;/^[ ]*$$/d' $< > $@T
|
sed '/^[ ]*#/d;/^[ ]*$$/d' $< > $@T
|
||||||
mv -f $@T $@
|
mv -f $@T $@
|
||||||
|
|
||||||
|
# To generate a header to support more than one ABI for different
|
||||||
|
# architecture variants, the CPU/Makefile defines abi-variants to be a
|
||||||
|
# list of names for those variants (e.g. 32 64), and, for each variant,
|
||||||
|
# defines abi-$(variant)-condition to be the condition for those options
|
||||||
|
# to use in a C #if condition. abi-includes may be defined to a list of
|
||||||
|
# headers to include in the generated header, if the default does not
|
||||||
|
# suffice.
|
||||||
|
|
||||||
|
ifdef abi-variants
|
||||||
|
ifndef default-abi
|
||||||
|
default-abi = $(firstword $(abi-variants))
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifndef abi-includes
|
||||||
|
abi-includes := bits/wordsize.h
|
||||||
|
endif
|
||||||
|
|
||||||
# Process the shlib-versions file, which tells us what shared library
|
# Process the shlib-versions file, which tells us what shared library
|
||||||
# version numbers to use when we install shared objects on this system.
|
# version numbers to use when we install shared objects on this system.
|
||||||
# We need to wait until $(subdirs) is complete.
|
# We need to wait until $(subdirs) is complete.
|
||||||
@ -816,24 +834,17 @@ $(common-objpfx)soversions.i: $(..)scripts/soversions.awk \
|
|||||||
-f $^ > $@T
|
-f $^ > $@T
|
||||||
mv -f $@T $@
|
mv -f $@T $@
|
||||||
$(common-objpfx)soversions.mk: $(common-objpfx)soversions.i $(..)Makeconfig
|
$(common-objpfx)soversions.mk: $(common-objpfx)soversions.i $(..)Makeconfig
|
||||||
(seen_DEFAULT=0; seen_WORDSIZE32=0; seen_WORDSIZE64=0; \
|
(while read which lib number setname; do \
|
||||||
while read which lib number setname; do \
|
|
||||||
eval seen_$$which=1; \
|
eval seen_$$which=1; \
|
||||||
test x"$$which" != xABI || echo abi-name = "$$lib"; \
|
test x"$$which" != xABI || echo abi-name = "$$lib"; \
|
||||||
test x"$$which" = xDEFAULT || continue; \
|
test x"$$which" = xDEFAULT || continue; \
|
||||||
case $$number in \
|
case $$number in \
|
||||||
[0-9]*) echo "$$lib.so-version=.$$number"; \
|
[0-9]*) echo "$$lib.so-version=.$$number"; \
|
||||||
echo "all-sonames+=$$lib=$$lib.so\$$($$lib.so-version)";;\
|
echo "all-sonames+=$$lib=$$lib.so\$$($$lib.so-version)";;\
|
||||||
*) echo "$$lib.so-version=$$number"; \
|
*) echo "$$lib.so-version=\$$(if \$$(abi-$(default-abi)-$$lib-soname),\$$(abi-$(default-abi)-$$lib-soname),$$number)"; \
|
||||||
echo "all-sonames+=$$lib=\$$($$lib.so-version)";;\
|
echo "all-sonames+=$$lib=\$$($$lib.so-version)";;\
|
||||||
esac; \
|
esac; \
|
||||||
done; \
|
done; \
|
||||||
case "$$seen_DEFAULT$$seen_WORDSIZE32$$seen_WORDSIZE64" in \
|
|
||||||
100) echo biarch = no;; \
|
|
||||||
101) echo biarch = 32;; \
|
|
||||||
?1?) echo biarch = 64;; \
|
|
||||||
*) echo >&2 BUG; exit 2;; \
|
|
||||||
esac; \
|
|
||||||
echo soversions.mk-done = t;) < $< > $@T; exit 0
|
echo soversions.mk-done = t;) < $< > $@T; exit 0
|
||||||
mv -f $@T $@
|
mv -f $@T $@
|
||||||
endif
|
endif
|
||||||
@ -850,8 +861,31 @@ $(common-objpfx)gnu/lib-names.h: $(common-objpfx)gnu/lib-names.stmp; @:
|
|||||||
$(common-objpfx)gnu/lib-names.stmp: $(..)scripts/lib-names.awk \
|
$(common-objpfx)gnu/lib-names.stmp: $(..)scripts/lib-names.awk \
|
||||||
$(common-objpfx)soversions.i
|
$(common-objpfx)soversions.i
|
||||||
$(make-target-directory)
|
$(make-target-directory)
|
||||||
@rm -f ${@:stmp=T} $@
|
{ \
|
||||||
LC_ALL=C $(AWK) -f $^ > ${@:stmp=T}
|
echo '/* This file is automatically generated.';\
|
||||||
|
echo ' It defines macros to allow user program to find the shared'; \
|
||||||
|
echo ' library files which come as part of GNU libc. */'; \
|
||||||
|
echo '#ifndef __GNU_LIB_NAMES_H'; \
|
||||||
|
echo '#define __GNU_LIB_NAMES_H 1'; \
|
||||||
|
echo ''; \
|
||||||
|
$(if $(abi-includes), \
|
||||||
|
$(foreach h,$(abi-includes), echo '#include <$(h)>';) \
|
||||||
|
echo '';) \
|
||||||
|
$(if $(abi-variants), \
|
||||||
|
$(foreach v,$(abi-variants),\
|
||||||
|
$(if $(abi-$(v)-condition),\
|
||||||
|
echo '#if $(abi-$(v)-condition)'; \
|
||||||
|
($(foreach s,$(all-sonames), \
|
||||||
|
$(if $(abi-$(v)-$(firstword $(subst =, ,$(s)))-soname),\
|
||||||
|
echo $(firstword $(subst =, ,$(s)))=$(abi-$(v)-$(firstword $(subst =, ,$(s)))-soname);, \
|
||||||
|
echo $(s);))) \
|
||||||
|
| LC_ALL=C $(AWK) -v multi=1 -f $(firstword $^) | LC_ALL=C sort;) \
|
||||||
|
$(if $(abi-$(v)-condition),echo '#endif';)), \
|
||||||
|
($(foreach s,$(all-sonames), echo $(s);)) \
|
||||||
|
| LC_ALL=C $(AWK) -f $(firstword $^) | LC_ALL=C sort;) \
|
||||||
|
echo ''; \
|
||||||
|
echo '#endif /* gnu/lib-names.h */'; \
|
||||||
|
} > ${@:stmp=T}
|
||||||
$(move-if-change) ${@:stmp=T} ${@:stmp=h}
|
$(move-if-change) ${@:stmp=T} ${@:stmp=h}
|
||||||
touch $@
|
touch $@
|
||||||
endif
|
endif
|
||||||
|
23
Makefile
23
Makefile
@ -170,14 +170,29 @@ others: $(common-objpfx)testrun.sh
|
|||||||
|
|
||||||
subdir-stubs := $(foreach dir,$(subdirs),$(common-objpfx)$(dir)/stubs)
|
subdir-stubs := $(foreach dir,$(subdirs),$(common-objpfx)$(dir)/stubs)
|
||||||
|
|
||||||
ifeq ($(biarch),no)
|
ifndef abi-variants
|
||||||
installed-stubs = $(inst_includedir)/gnu/stubs.h
|
installed-stubs = $(inst_includedir)/gnu/stubs.h
|
||||||
else
|
else
|
||||||
installed-stubs = $(inst_includedir)/gnu/stubs-$(biarch).h
|
installed-stubs = $(inst_includedir)/gnu/stubs-$(default-abi).h
|
||||||
|
|
||||||
$(inst_includedir)/gnu/stubs.h: include/stubs-biarch.h $(+force)
|
$(inst_includedir)/gnu/stubs.h: $(common-objpfx)soversions.mk $(+force)
|
||||||
$(make-target-directory)
|
$(make-target-directory)
|
||||||
$(INSTALL_DATA) $< $@
|
{ \
|
||||||
|
echo '/* This file is automatically generated.';\
|
||||||
|
echo " This file selects the right generated file of \`__stub_FUNCTION' macros";\
|
||||||
|
echo ' based on the architecture being compiled for. */'; \
|
||||||
|
echo ''; \
|
||||||
|
$(foreach h,$(abi-includes), echo '#include <$(h)>';) \
|
||||||
|
echo ''; \
|
||||||
|
$(foreach v,$(abi-variants),\
|
||||||
|
$(if $(abi-$(v)-condition),\
|
||||||
|
echo '#if $(abi-$(v)-condition)'; \
|
||||||
|
echo '# include <gnu/stubs-$(v).h>'); \
|
||||||
|
$(if $(abi-$(v)-condition),echo '#endif';) \
|
||||||
|
rm -f $(@:.d=.h).new$(v); \
|
||||||
|
) \
|
||||||
|
} > $(@:.d=.h).new
|
||||||
|
mv -f $(@:.d=.h).new $(@:.d=.h)
|
||||||
|
|
||||||
install-others-nosubdir: $(installed-stubs)
|
install-others-nosubdir: $(installed-stubs)
|
||||||
endif
|
endif
|
||||||
|
@ -1,12 +0,0 @@
|
|||||||
/* This file selects the right generated file of `__stub_FUNCTION' macros
|
|
||||||
based on the architecture being compiled for. */
|
|
||||||
|
|
||||||
#include <bits/wordsize.h>
|
|
||||||
|
|
||||||
#if __WORDSIZE == 32
|
|
||||||
# include <gnu/stubs-32.h>
|
|
||||||
#elif __WORDSIZE == 64
|
|
||||||
# include <gnu/stubs-64.h>
|
|
||||||
#else
|
|
||||||
# error "unexpected value for __WORDSIZE macro"
|
|
||||||
#endif
|
|
@ -1,18 +1,17 @@
|
|||||||
# awk script for soversions.i -> gnu/lib-names.h; see Makeconfig.
|
# awk script for soversions.i -> gnu/lib-names.h; see Makeconfig.
|
||||||
|
|
||||||
$1 != "DEFAULT" { multi = 1 }
|
|
||||||
|
|
||||||
#
|
#
|
||||||
{
|
{
|
||||||
lib = $2;
|
split($1, fields, "=")
|
||||||
version = $3;
|
lib = fields[1];
|
||||||
if ($3 !~ /^[0-9]/) {
|
soname = version = fields[2];
|
||||||
soname = $3;
|
sub(/^.*=/, "", soname);
|
||||||
extra = $3;
|
sub(/^lib.*\.so\./, "", version);
|
||||||
|
if ($soname !~ /^lib/) {
|
||||||
|
extra = soname;
|
||||||
sub(/\.so.*$/, "", extra);
|
sub(/\.so.*$/, "", extra);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
soname = lib ".so." $3;
|
|
||||||
extra = "";
|
extra = "";
|
||||||
}
|
}
|
||||||
soname = "\"" soname "\"";
|
soname = "\"" soname "\"";
|
||||||
@ -26,41 +25,9 @@ $1 != "DEFAULT" { multi = 1 }
|
|||||||
}
|
}
|
||||||
|
|
||||||
END {
|
END {
|
||||||
print "/* This file is automatically generated.";
|
|
||||||
print " It defines macros to allow user program to find the shared";
|
|
||||||
print " library files which come as part of GNU libc. */";
|
|
||||||
print "#ifndef __GNU_LIB_NAMES_H";
|
|
||||||
print "#define __GNU_LIB_NAMES_H 1";
|
|
||||||
print "";
|
|
||||||
|
|
||||||
pfx = multi ? "# define " : "#define ";
|
|
||||||
for (elt in macros) {
|
for (elt in macros) {
|
||||||
split(elt, x);
|
split(elt, x);
|
||||||
line = sprintf("%-40s%s", pfx x[2], macros[elt]);
|
pfx = multi ? "# define " : "#define ";
|
||||||
if (x[1] in lines)
|
printf("%-40s%s\n", pfx x[2], macros[elt]);
|
||||||
lines[x[1]] = lines[x[1]] "\n" line;
|
|
||||||
else
|
|
||||||
lines[x[1]] = line;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (multi) {
|
|
||||||
# Print these in a fixed order so the result is identical
|
|
||||||
# on both sides of the coin.
|
|
||||||
if (!("WORDSIZE32" in lines))
|
|
||||||
lines["WORDSIZE32"] = lines["DEFAULT"];
|
|
||||||
if (!("WORDSIZE64" in lines))
|
|
||||||
lines["WORDSIZE64"] = lines["DEFAULT"];
|
|
||||||
print "#include <bits/wordsize.h>\n";
|
|
||||||
print "#if __WORDSIZE == 32";
|
|
||||||
cmd = "LC_ALL=C sort"; print lines["WORDSIZE32"] | cmd; close(cmd);
|
|
||||||
print "#else"
|
|
||||||
cmd = "LC_ALL=C sort"; print lines["WORDSIZE64"] | cmd; close(cmd);
|
|
||||||
print "#endif";
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
cmd = "LC_ALL=C sort"; print lines["DEFAULT"] | cmd; close(cmd);
|
|
||||||
}
|
|
||||||
|
|
||||||
print "";
|
|
||||||
print "#endif /* gnu/lib-names.h */"
|
|
||||||
}
|
}
|
||||||
|
@ -7,17 +7,6 @@ BEGIN {
|
|||||||
|
|
||||||
{ thiscf = $1 }
|
{ thiscf = $1 }
|
||||||
|
|
||||||
$2 ~ /WORDSIZE[3264]/ {
|
|
||||||
if ((config ~ thiscf) && !othercf) {
|
|
||||||
othercf = $3;
|
|
||||||
sub(/@CPU@/, cpu, othercf);
|
|
||||||
sub(/@VENDOR@/, vendor, othercf);
|
|
||||||
sub(/@OS@/, os, othercf);
|
|
||||||
configs[othercf] = $2;
|
|
||||||
}
|
|
||||||
next;
|
|
||||||
}
|
|
||||||
|
|
||||||
$2 == "ABI" {
|
$2 == "ABI" {
|
||||||
if ((config ~ thiscf) && !abiname) {
|
if ((config ~ thiscf) && !abiname) {
|
||||||
abiname = $3;
|
abiname = $3;
|
||||||
|
@ -18,11 +18,6 @@
|
|||||||
# library has no third column. The defaults must precede the entries they
|
# library has no third column. The defaults must precede the entries they
|
||||||
# apply to.
|
# apply to.
|
||||||
#
|
#
|
||||||
# An entry with WORDSIZE* in the second column gives an alternate
|
|
||||||
# configuration tuple whose macros will be conditionally defined in
|
|
||||||
# gnu/lib-names.h; @CPU@, @VENDOR@, @OS@ can be used in the third
|
|
||||||
# column to compose the alternate tuple matched against the patterns here.
|
|
||||||
|
|
||||||
# Configuration DEFAULT Earliest symbol set
|
# Configuration DEFAULT Earliest symbol set
|
||||||
# ------------- --------------- ------------------------------
|
# ------------- --------------- ------------------------------
|
||||||
|
|
||||||
@ -30,17 +25,6 @@ s390x-.*-linux.* DEFAULT GLIBC_2.2
|
|||||||
powerpc64-.*-linux.* DEFAULT GLIBC_2.3
|
powerpc64-.*-linux.* DEFAULT GLIBC_2.3
|
||||||
.*-.*-gnu-gnu.* DEFAULT GLIBC_2.2.6
|
.*-.*-gnu-gnu.* DEFAULT GLIBC_2.2.6
|
||||||
|
|
||||||
# Configuration WORDSIZE[32|64] Alternate configuration
|
|
||||||
# ------------- ---------- -----------------------
|
|
||||||
x86_64-.*-.* WORDSIZE32 i686-@VENDOR@-@OS@
|
|
||||||
i.86-.*-.* WORDSIZE64 x86_64-@VENDOR@-@OS@
|
|
||||||
s390x-.*-.* WORDSIZE32 s390-@VENDOR@-@OS@
|
|
||||||
s390-.*-.* WORDSIZE64 s390x-@VENDOR@-@OS@
|
|
||||||
powerpc64-.*-.* WORDSIZE32 powerpc-@VENDOR@-@OS@
|
|
||||||
powerpc.*-.*-.* WORDSIZE64 powerpc64-@VENDOR@-@OS@
|
|
||||||
sparc64.*-.*-.* WORDSIZE32 sparc-@VENDOR@-@OS@
|
|
||||||
sparc.*-.*-.* WORDSIZE64 sparc64-@VENDOR@-@OS@
|
|
||||||
|
|
||||||
# Configuration ABI Identifier for ABI data files
|
# Configuration ABI Identifier for ABI data files
|
||||||
# ------------- ---------- -----------------------------
|
# ------------- ---------- -----------------------------
|
||||||
sparc64.*-.*-.* ABI sparc64-@OS@
|
sparc64.*-.*-.* ABI sparc64-@OS@
|
||||||
@ -70,12 +54,9 @@ sparc64.*-.*-linux.* libc=6 GLIBC_2.2
|
|||||||
.*-.*-gnu-gnu.* libc=0.3
|
.*-.*-gnu-gnu.* libc=0.3
|
||||||
|
|
||||||
# The dynamic loader also requires different names.
|
# The dynamic loader also requires different names.
|
||||||
i.86-.*-linux.* ld=ld-linux.so.2
|
|
||||||
sparc64.*-.*-linux.* ld=ld-linux.so.2 GLIBC_2.2
|
sparc64.*-.*-linux.* ld=ld-linux.so.2 GLIBC_2.2
|
||||||
sparc.*-.*-linux.* ld=ld-linux.so.2
|
sparc.*-.*-linux.* ld=ld-linux.so.2
|
||||||
sh.*-.*-linux.* ld=ld-linux.so.2 GLIBC_2.2
|
sh.*-.*-linux.* ld=ld-linux.so.2 GLIBC_2.2
|
||||||
s390x-.*-linux.* ld=ld64.so.1 GLIBC_2.2
|
|
||||||
powerpc64.*-.*-linux.* ld=ld64.so.1 GLIBC_2.3
|
|
||||||
# We use the ELF ABI standard name for the default.
|
# We use the ELF ABI standard name for the default.
|
||||||
.*-.*-.* ld=ld.so.1
|
.*-.*-.* ld=ld.so.1
|
||||||
|
|
||||||
|
@ -43,25 +43,14 @@ tests += tst-clone
|
|||||||
# Generate the list of SYS_* macros for the system calls (__NR_* macros).
|
# Generate the list of SYS_* macros for the system calls (__NR_* macros).
|
||||||
|
|
||||||
# If there is more than one syscall list for different architecture
|
# If there is more than one syscall list for different architecture
|
||||||
# variants, the CPU/Makefile defines syscall-list-variants to be a
|
# variants, the CPU/Makefile defines abi-variants to be a list of names
|
||||||
# list of names for those variants (e.g. 32bit 64bit), and, for each
|
# for those variants (e.g. 32 64), and, for each variant, defines
|
||||||
# variant, defines syscall-list-$(variant)-options to be compiler
|
# abi-$(variant)-options to be compiler options to cause <asm/unistd.h>
|
||||||
# options to cause <asm/unistd.h> to define the desired list of
|
# to define the desired list of syscalls and abi-$(variant)-condition to
|
||||||
# syscalls and syscall-list-$(variant)-condition to be the condition
|
# be the condition for those options to use in a C #if condition.
|
||||||
# for those options to use in a C #if condition.
|
# abi-includes may be defined to a list of headers to include
|
||||||
# syscall-list-includes may be defined to a list of headers to include
|
|
||||||
# in the generated header, if the default does not suffice.
|
# in the generated header, if the default does not suffice.
|
||||||
|
|
||||||
ifndef syscall-list-variants
|
|
||||||
syscall-list-variants := default
|
|
||||||
syscall-list-default-options :=
|
|
||||||
syscall-list-default-condition :=
|
|
||||||
endif
|
|
||||||
|
|
||||||
ifndef syscall-list-includes
|
|
||||||
syscall-list-includes := bits/wordsize.h
|
|
||||||
endif
|
|
||||||
|
|
||||||
$(objpfx)bits/syscall%h $(objpfx)bits/syscall%d: ../sysdeps/unix/sysv/linux/sys/syscall.h
|
$(objpfx)bits/syscall%h $(objpfx)bits/syscall%d: ../sysdeps/unix/sysv/linux/sys/syscall.h
|
||||||
$(make-target-directory)
|
$(make-target-directory)
|
||||||
{ \
|
{ \
|
||||||
@ -71,31 +60,41 @@ $(objpfx)bits/syscall%h $(objpfx)bits/syscall%d: ../sysdeps/unix/sysv/linux/sys/
|
|||||||
echo '# error "Never use <bits/syscall.h> directly; include <sys/syscall.h> instead."'; \
|
echo '# error "Never use <bits/syscall.h> directly; include <sys/syscall.h> instead."'; \
|
||||||
echo '#endif'; \
|
echo '#endif'; \
|
||||||
echo ''; \
|
echo ''; \
|
||||||
$(foreach h,$(syscall-list-includes), echo '#include <$(h)>';) \
|
$(foreach h,$(abi-includes), echo '#include <$(h)>';) \
|
||||||
echo ''; \
|
echo ''; \
|
||||||
$(foreach v,$(syscall-list-variants),\
|
$(if $(abi-variants), \
|
||||||
|
$(foreach v,$(abi-variants),\
|
||||||
$(CC) -E -MD -MP -MF $(@:.h=.d)-t$(v) -MT '$(@:.d=.h) $(@:.h=.d)' \
|
$(CC) -E -MD -MP -MF $(@:.h=.d)-t$(v) -MT '$(@:.d=.h) $(@:.h=.d)' \
|
||||||
-x c $(sysincludes) $< $(syscall-list-$(v)-options) \
|
-x c $(sysincludes) $< $(abi-$(v)-options) \
|
||||||
-D_LIBC -dM | \
|
-D_LIBC -dM | \
|
||||||
sed -n 's@^#define __NR_\([^ ]*\) .*$$@#define SYS_\1 __NR_\1@p' | \
|
sed -n 's@^#define __NR_\([^ ]*\) .*$$@#define SYS_\1 __NR_\1@p' | \
|
||||||
LC_ALL=C sort > $(@:.d=.h).new$(v); \
|
LC_ALL=C sort > $(@:.d=.h).new$(v); \
|
||||||
$(if $(syscall-list-$(v)-condition),\
|
$(if $(abi-$(v)-condition),\
|
||||||
echo '#if $(syscall-list-$(v)-condition)';) \
|
echo '#if $(abi-$(v)-condition)';) \
|
||||||
cat $(@:.d=.h).new$(v); \
|
cat $(@:.d=.h).new$(v); \
|
||||||
$(if $(syscall-list-$(v)-condition),echo '#endif';) \
|
$(if $(abi-$(v)-condition),echo '#endif';) \
|
||||||
rm -f $(@:.d=.h).new$(v); \
|
rm -f $(@:.d=.h).new$(v); \
|
||||||
) \
|
), \
|
||||||
|
$(CC) -E -MD -MP -MF $(@:.h=.d)-t$(v) -MT '$(@:.d=.h) $(@:.h=.d)' \
|
||||||
|
-x c $(sysincludes) $< \
|
||||||
|
-D_LIBC -dM | \
|
||||||
|
sed -n 's@^#define __NR_\([^ ]*\) .*$$@#define SYS_\1 __NR_\1@p' | \
|
||||||
|
LC_ALL=C sort;) \
|
||||||
} > $(@:.d=.h).new
|
} > $(@:.d=.h).new
|
||||||
mv -f $(@:.d=.h).new $(@:.d=.h)
|
mv -f $(@:.d=.h).new $(@:.d=.h)
|
||||||
|
ifdef abi-variants
|
||||||
ifneq (,$(objpfx))
|
ifneq (,$(objpfx))
|
||||||
sed $(sed-remove-objpfx) \
|
sed $(sed-remove-objpfx) \
|
||||||
$(foreach v,$(syscall-list-variants),$(@:.h=.d)-t$(v)) > $(@:.h=.d)-t3
|
$(foreach v,$(abi-variants),$(@:.h=.d)-t$(v)) > $(@:.h=.d)-t3
|
||||||
else
|
else
|
||||||
cat $(foreach v,$(syscall-list-variants),$(@:.h=.d)-t$(v)) \
|
cat $(foreach v,$(abi-variants),$(@:.h=.d)-t$(v)) \
|
||||||
> $(@:.h=.d)-t3
|
> $(@:.h=.d)-t3
|
||||||
endif
|
endif
|
||||||
rm -f $(foreach v,$(syscall-list-variants),$(@:.h=.d)-t$(v))
|
rm -f $(foreach v,$(abi-variants),$(@:.h=.d)-t$(v))
|
||||||
mv -f $(@:.h=.d)-t3 $(@:.h=.d)
|
mv -f $(@:.h=.d)-t3 $(@:.h=.d)
|
||||||
|
else
|
||||||
|
mv -f $(@:.h=.d)-t $(@:.h=.d)
|
||||||
|
endif
|
||||||
|
|
||||||
ifndef no_deps
|
ifndef no_deps
|
||||||
# Get the generated list of dependencies (probably /usr/include/asm/unistd.h).
|
# Get the generated list of dependencies (probably /usr/include/asm/unistd.h).
|
||||||
|
1
sysdeps/unix/sysv/linux/i386/Implies
Normal file
1
sysdeps/unix/sysv/linux/i386/Implies
Normal file
@ -0,0 +1 @@
|
|||||||
|
unix/sysv/linux/x86
|
@ -1,3 +1,6 @@
|
|||||||
|
# The default ABI is 32.
|
||||||
|
default-abi := 32
|
||||||
|
|
||||||
ifeq ($(subdir),misc)
|
ifeq ($(subdir),misc)
|
||||||
sysdep_routines += ioperm iopl vm86 call_pselect6 call_fallocate
|
sysdep_routines += ioperm iopl vm86 call_pselect6 call_fallocate
|
||||||
sysdep_headers += sys/elf.h sys/perm.h sys/reg.h sys/vm86.h sys/debugreg.h sys/io.h
|
sysdep_headers += sys/elf.h sys/perm.h sys/reg.h sys/vm86.h sys/debugreg.h sys/io.h
|
||||||
|
@ -1,8 +1,9 @@
|
|||||||
syscall-list-variants := 32bit 64bit
|
abi-variants := 32 64
|
||||||
syscall-list-32bit-options := -U__powerpc64__
|
abi-32-options := -U__powerpc64__
|
||||||
syscall-list-32bit-condition := __WORDSIZE == 32
|
abi-32-condition := __WORDSIZE == 32
|
||||||
syscall-list-64bit-options := -D__powerpc64__
|
abi-64-options := -D__powerpc64__
|
||||||
syscall-list-64bit-condition := __WORDSIZE == 64
|
abi-64-condition := __WORDSIZE == 64
|
||||||
|
abi-64-ld-soname := ld64.so.1
|
||||||
|
|
||||||
ifeq ($(subdir),rt)
|
ifeq ($(subdir),rt)
|
||||||
librt-routines += rt-sysdep
|
librt-routines += rt-sysdep
|
||||||
|
@ -1,8 +1,9 @@
|
|||||||
syscall-list-variants := 32bit 64bit
|
abi-variants := 32 64
|
||||||
syscall-list-32bit-options := -U__s390x__
|
abi-32-options := -U__s390x__
|
||||||
syscall-list-32bit-condition := __WORDSIZE == 32
|
abi-32-condition := __WORDSIZE == 32
|
||||||
syscall-list-64bit-options := -D__s390x__
|
abi-64-options := -D__s390x__
|
||||||
syscall-list-64bit-condition := __WORDSIZE == 64
|
abi-64-condition := __WORDSIZE == 64
|
||||||
|
abi-64-ld-soname := ld64.so.1
|
||||||
|
|
||||||
ifeq ($(subdir),rt)
|
ifeq ($(subdir),rt)
|
||||||
librt-routines += rt-sysdep
|
librt-routines += rt-sysdep
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
syscall-list-variants := 32bit 64bit
|
abi-variants := 32 64
|
||||||
syscall-list-32bit-options := -U__sparc_v9__ -U__arch64__
|
abi-32-options := -U__sparc_v9__ -U__arch64__
|
||||||
syscall-list-32bit-condition := __WORDSIZE == 32
|
abi-32-condition := __WORDSIZE == 32
|
||||||
syscall-list-64bit-options := -D__sparc_v9__ -D__arch64__
|
abi-64-options := -D__sparc_v9__ -D__arch64__
|
||||||
syscall-list-64bit-condition := __WORDSIZE == 64
|
abi-64-condition := __WORDSIZE == 64
|
||||||
|
|
||||||
ifeq ($(subdir),rt)
|
ifeq ($(subdir),rt)
|
||||||
librt-routines += rt-sysdep
|
librt-routines += rt-sysdep
|
||||||
|
14
sysdeps/unix/sysv/linux/x86/Makefile
Normal file
14
sysdeps/unix/sysv/linux/x86/Makefile
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
# We don't need any header files.
|
||||||
|
abi-includes :=
|
||||||
|
|
||||||
|
abi-variants := 32 64 x32
|
||||||
|
|
||||||
|
abi-32-options := -D__i386__ -U__x86_64__
|
||||||
|
abi-32-condition := !defined __x86_64__
|
||||||
|
abi-32-ld-soname := ld-linux.so.2
|
||||||
|
abi-64-options := -U__i386__ -D__x86_64__ -U__ILP32__ -D__LP64__
|
||||||
|
abi-64-condition := defined __x86_64__ && defined __LP64__
|
||||||
|
abi-64-ld-soname := ld-linux-x86-64.so.2
|
||||||
|
abi-x32-options := -U__i386__ -D__x86_64__ -D__ILP32__ -U__LP64__
|
||||||
|
abi-x32-condition := defined __x86_64__ && defined __ILP32__
|
||||||
|
abi-x32-ld-soname := ld-linux-x32.so.2
|
2
sysdeps/unix/sysv/linux/x86_64/64/Makefile
Normal file
2
sysdeps/unix/sysv/linux/x86_64/64/Makefile
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
# The default ABI is 64.
|
||||||
|
default-abi := 64
|
@ -1 +1,2 @@
|
|||||||
|
unix/sysv/linux/x86
|
||||||
unix/sysv/linux/wordsize-64
|
unix/sysv/linux/wordsize-64
|
||||||
|
@ -1,9 +1,3 @@
|
|||||||
syscall-list-variants := 32bit 64bit
|
|
||||||
syscall-list-32bit-options := -D__i386__ -U__x86_64__
|
|
||||||
syscall-list-32bit-condition := __WORDSIZE == 32
|
|
||||||
syscall-list-64bit-options := -U__i386__ -D__x86_64__
|
|
||||||
syscall-list-64bit-condition := __WORDSIZE == 64
|
|
||||||
|
|
||||||
ifeq ($(subdir),misc)
|
ifeq ($(subdir),misc)
|
||||||
sysdep_routines += ioperm iopl
|
sysdep_routines += ioperm iopl
|
||||||
sysdep_headers += sys/perm.h sys/reg.h sys/debugreg.h sys/io.h
|
sysdep_headers += sys/perm.h sys/reg.h sys/debugreg.h sys/io.h
|
||||||
|
@ -1,3 +1,6 @@
|
|||||||
|
# The default ABI is x32.
|
||||||
|
default-abi := x32
|
||||||
|
|
||||||
ifeq ($(subdir),misc)
|
ifeq ($(subdir),misc)
|
||||||
sysdep_routines += arch_prctl
|
sysdep_routines += arch_prctl
|
||||||
endif
|
endif
|
||||||
|
@ -1,4 +1,3 @@
|
|||||||
# Configuration DEFAULT Earliest symbol set
|
# Configuration DEFAULT Earliest symbol set
|
||||||
# ------------- --------------- ------------------------------
|
# ------------- --------------- ------------------------------
|
||||||
x86_64-.*-linux.* DEFAULT GLIBC_2.2.5
|
x86_64-.*-linux.* DEFAULT GLIBC_2.2.5
|
||||||
x86_64-.*-linux.* ld=ld-linux-x86-64.so.2 GLIBC_2.2.5
|
|
||||||
|
@ -1,7 +1,6 @@
|
|||||||
# Configuration DEFAULT Earliest symbol set
|
# Configuration DEFAULT Earliest symbol set
|
||||||
# ------------- --------------- ------------------------------
|
# ------------- --------------- ------------------------------
|
||||||
x86_64-.*-linux.* DEFAULT GLIBC_2.16
|
x86_64-.*-linux.* DEFAULT GLIBC_2.16
|
||||||
x86_64-.*-linux.* ld=ld-linux-x32.so.2 GLIBC_2.16
|
|
||||||
|
|
||||||
# Configuration ABI Identifier for ABI data files
|
# Configuration ABI Identifier for ABI data files
|
||||||
# ------------- ---------- -----------------------------
|
# ------------- ---------- -----------------------------
|
||||||
|
Loading…
Reference in New Issue
Block a user