about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog12
-rw-r--r--Versions.def2
-rw-r--r--elf/elf.h21
-rw-r--r--shlib-versions2
-rw-r--r--sysdeps/unix/sysv/linux/configure14
-rw-r--r--sysdeps/unix/sysv/linux/configure.in8
6 files changed, 54 insertions, 5 deletions
diff --git a/ChangeLog b/ChangeLog
index 4711e15b75..6af03ab3e9 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,15 @@
+2001-09-19  Andreas Jaeger  <aj@suse.de>
+
+	* Versions.def: Add missing versions 2.2.3 for libthread_db and
+	libpthread.
+
+	* sysdeps/unix/sysv/linux/configure.in: Add minimal kernel version
+	for x86-64, install x86-64 into */lib64.
+
+	* shlib-versions: Add x86-64.
+
+	* elf/elf.h: Add x86-64 relocations.
+
 2001-09-19  Ulrich Drepper  <drepper@redhat.com>
 
 	* po/fr.po: Update from translation team.
diff --git a/Versions.def b/Versions.def
index aa4a4926bf..830a610e0b 100644
--- a/Versions.def
+++ b/Versions.def
@@ -70,6 +70,7 @@ libpthread {
   GLIBC_2.1.1
   GLIBC_2.1.2
   GLIBC_2.2
+  GLIBC_2.2.3
 }
 libresolv {
   GLIBC_2.0
@@ -96,6 +97,7 @@ ld {
 }
 libthread_db {
   GLIBC_2.1.3
+  GLIBC_2.2.3
 }
 libanl {
   GLIBC_2.2.3
diff --git a/elf/elf.h b/elf/elf.h
index 595d904774..4ae28a51b8 100644
--- a/elf/elf.h
+++ b/elf/elf.h
@@ -2084,6 +2084,27 @@ typedef Elf32_Addr Elf32_Conflict;
 
 #define R_CRIS_NUM		20
 
+/* AMD x86-64 relocations.  */
+#define R_X86_64_NONE		0	/* No reloc */
+#define R_X86_64_64		1	/* Direct 64 bit  */
+#define R_X86_64_PC32		2	/* PC relative 32 bit signed */
+#define R_X86_64_GOT32		3	/* 32 bit GOT entry */
+#define R_X86_64_PLT32		4	/* 32 bit PLT address */
+#define R_X86_64_COPY		5	/* Copy symbol at runtime */
+#define R_X86_64_GLOB_DAT	6	/* Create GOT entry */
+#define R_X86_64_JUMP_SLOT	7	/* Create PLT entry */
+#define R_X86_64_RELATIVE	8	/* Adjust by program base */
+#define R_X86_64_GOTPCREL	9	/* 32 bit signed pc relative
+					   offset to GOT */
+#define R_X86_64_32		10	/* Direct 32 bit zero extended */
+#define R_X86_64_32S		11	/* Direct 32 bit sign extended */
+#define R_X86_64_16		12	/* Direct 16 bit zero extended */
+#define R_X86_64_PC16		13	/* 16 bit sign extended pc relative */
+#define R_X86_64_8		14	/* Direct 8 bit sign extended  */
+#define R_X86_64_PC8		15	/* 8 bit sign extended pc relative */
+
+#define R_X86_64_NUM		16
+
 __END_DECLS
 
 #endif	/* elf.h */
diff --git a/shlib-versions b/shlib-versions
index 21eb67fcfe..a4124e376f 100644
--- a/shlib-versions
+++ b/shlib-versions
@@ -23,6 +23,7 @@
 
 s390x-.*-linux.*        DEFAULT			GLIBC_2.2
 cris-.*-linux.*		DEFAULT			GLIBC_2.2
+x86_64-.*-linux.*       DEFAULT			GLIBC_2.2.5
 %if defined(USE_IN_LIBIO) && !defined(GLIBC_OLDEST_ABI)
 // If you use configure --enable-libio --enable-oldest-abi=2.0 then we
 // won't rename the old version sets and all the libraries except libc
@@ -79,6 +80,7 @@ mips.*-.*-linux.*	ld=ld.so.1		GLIBC_2.0 GLIBC_2.2
 hppa.*-.*-.*		ld=ld.so.1		GLIBC_2.2
 s390x-.*-linux.*	ld=ld64.so.1		GLIBC_2.2
 cris-.*-linux.*		ld=ld.so.1		GLIBC_2.2
+x86_64-.*-linux.*	ld=ld-linux-x86-64.so.2	GLIBC_2.2.5
 # We use the ELF ABI standard name for the default.
 .*-.*-.*		ld=ld.so.1
 
diff --git a/sysdeps/unix/sysv/linux/configure b/sysdeps/unix/sysv/linux/configure
index b1fb85f681..db1666d258 100644
--- a/sysdeps/unix/sysv/linux/configure
+++ b/sysdeps/unix/sysv/linux/configure
@@ -67,6 +67,9 @@ case "$machine" in
   sh*)
     arch_minimum_kernel=2.3.99
     ;;
+  x86_64*)
+    arch_minimum_kernel=2.4.0
+    ;;
   *)
     arch_minimum_kernel=2.0.10
     ;;
@@ -88,11 +91,11 @@ fi
 
 if test -n "$minimum_kernel"; then
   echo $ac_n "checking for kernel header at least $minimum_kernel""... $ac_c" 1>&6
-echo "configure:92: checking for kernel header at least $minimum_kernel" >&5
+echo "configure:95: checking for kernel header at least $minimum_kernel" >&5
   decnum=`echo "$minimum_kernel.0.0.0" | sed 's/\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*/(\1 * 65536 + \2 * 256 + \3)/'`;
   abinum=`echo "$minimum_kernel.0.0.0" | sed 's/\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*/\1,\2,\3/'`;
   cat > conftest.$ac_ext <<EOF
-#line 96 "configure"
+#line 99 "configure"
 #include "confdefs.h"
 #include <linux/version.h>
 #if LINUX_VERSION_CODE < $decnum
@@ -134,7 +137,7 @@ fi
 # in /lib and /etc.
 if test "$prefix" = "/usr" -o "$prefix" = "/usr/"; then
   # 64bit libraries on sparc go to /lib64 and not /lib
-  if test "$machine" = "sparc/sparc64"; then
+  if test "$machine" = "sparc/sparc64" -o "$machine" = "x86_64"; then
     libc_cv_slibdir="/lib64"
     if test "$libdir" = '${exec_prefix}/lib'; then
       libdir='${exec_prefix}/lib64';
@@ -198,6 +201,9 @@ case "$machine" in
   sparc*)
     ldd_rewrite_script=../sysdeps/unix/sysv/linux/sparc/ldd-rewrite.sed
     ;;
+  x86_64*)
+    ldd_rewrite_script=../sysdeps/unix/sysv/linux/x86_64/ldd-rewrite.sed
+    ;;
   *)
     ;;
 esac
@@ -213,7 +219,7 @@ if test $host = $build; then
     ac_prefix=$ac_default_prefix
   fi
   echo $ac_n "checking for symlinks in ${ac_prefix}/include""... $ac_c" 1>&6
-echo "configure:211: checking for symlinks in ${ac_prefix}/include" >&5
+echo "configure:223: checking for symlinks in ${ac_prefix}/include" >&5
   ac_message=
   if test -L ${ac_prefix}/include/net; then
     ac_message="$ac_message
diff --git a/sysdeps/unix/sysv/linux/configure.in b/sysdeps/unix/sysv/linux/configure.in
index b522f3e08b..dfae5a1de3 100644
--- a/sysdeps/unix/sysv/linux/configure.in
+++ b/sysdeps/unix/sysv/linux/configure.in
@@ -54,6 +54,9 @@ case "$machine" in
   sh*)
     arch_minimum_kernel=2.3.99
     ;;
+  x86_64*)
+    arch_minimum_kernel=2.4.0
+    ;;
   *)
     arch_minimum_kernel=2.0.10
     ;;
@@ -102,7 +105,7 @@ fi
 # in /lib and /etc.
 if test "$prefix" = "/usr" -o "$prefix" = "/usr/"; then
   # 64bit libraries on sparc go to /lib64 and not /lib
-  if test "$machine" = "sparc/sparc64"; then
+  if test "$machine" = "sparc/sparc64" -o "$machine" = "x86_64"; then
     libc_cv_slibdir="/lib64"
     if test "$libdir" = '${exec_prefix}/lib'; then
       libdir='${exec_prefix}/lib64';
@@ -166,6 +169,9 @@ case "$machine" in
   sparc*)
     ldd_rewrite_script=../sysdeps/unix/sysv/linux/sparc/ldd-rewrite.sed
     ;;
+  x86_64*)
+    ldd_rewrite_script=../sysdeps/unix/sysv/linux/x86_64/ldd-rewrite.sed
+    ;;
   *)
     ;;
 esac