This is the mail archive of the libc-hacker@sources.redhat.com mailing list for the glibc project.

Note that libc-hacker is a closed list. You may look at the archives of this list, but subscription and posting are not open.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

x86-64 patch for generic files



Here's a reworked version of the patches for the generic files touched
by the x86-64 port.

I'm still not decided on the name of the linker but most probably will
use /lib64/ld-linux.so.2 (and decide this before the commit).

Ok to commit now?

Andreas

2001-09-19  Andreas Jaeger  <aj@suse.de>

	* Versions.def: Add missing versions 2.2.3 for libthread_db and
	libthread.

	* 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.

For linuxthreads:	
2001-09-19  Andreas Jaeger  <aj@suse.de>

	* linuxthreads/shlib-versions: Add x86-64.

============================================================
Index: Versions.def
--- Versions.def	2001/08/21 20:32:21	1.34
+++ Versions.def	2001/09/19 10:41:38
@@ -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
============================================================
Index: shlib-versions
--- shlib-versions	2001/06/14 03:01:06	1.60
+++ shlib-versions	2001/09/19 10:41:38
@@ -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 
 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=ld64.so.1		GLIBC_2.2.5
 # We use the ELF ABI standard name for the default.
 .*-.*-.*		ld=ld.so.1
 
============================================================
Index: sysdeps/unix/sysv/linux/configure.in
--- sysdeps/unix/sysv/linux/configure.in	2001/09/19 03:14:53	1.43
+++ sysdeps/unix/sysv/linux/configure.in	2001/09/19 10:41:38
@@ -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';
@@ -165,6 +168,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
     ;;
   *)
     ;;
============================================================
Index: elf/elf.h
--- elf/elf.h	2001/09/05 04:54:11	1.100
+++ elf/elf.h	2001/09/19 10:41:38
@@ -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 */
============================================================
Index: linuxthreads/shlib-versions
--- linuxthreads/shlib-versions	2001/04/09 04:01:52	1.8
+++ linuxthreads/shlib-versions	2001/09/19 10:41:38
@@ -6,4 +6,5 @@ ia64.*-.*-linux.*	libpthread=0		GLIBC_2.
 hppa.*-.*-linux.*	libpthread=0		GLIBC_2.2
 s390x-.*-linux.*	libpthread=0		GLIBC_2.2
 cris-.*-linux.*		libpthread=0		GLIBC_2.2
+x86_64-.*-linux.*	libpthread=0		GLIBC_2.2.5
 .*-.*-linux.*		libpthread=0

-- 
 Andreas Jaeger
  SuSE Labs aj@suse.de
   private aj@arthur.inka.de
    http://www.suse.de/~aj


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]