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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[PATCH] PowerPC64 port part 2 of 7


PowerPC64 part 2 of 7 follows:

2002-07-29  Steven Munroe  <sjmunroe@us.ibm.com>
	* FAQ.in: Add powerpc64 to supported targets list. Also the minimum gcc
	version is 3.1.1.
	* Makeconfig: Don't force -fPIC for powerpc64.
	* Makerules: Powerpc64 requires dot symbols so pass this info on to 
	versions.awk.
	* README: Add powerpc64 to supported targets list.
	* configure, configure.in: Add powerpc64 to supported targets and select
	powerpc/ppc32 or powerpc/ppc64 directores as needed.
	Also define HAVE_ASM_GLOBAL_DOT_NAME in config.h.
	Also set libc_cv_gcc_dwarf2_unwind_info=no as powperpc64's first release
	is gcc-3.1.1/glibc-2.2.5 we don't need gcc-2.95 compatibility.
	Patch by Alan Modra <amodra@bigpond.net.au>
	* scripts/config.guess: Add powerpc64 to supported targets.
	Patch by Alan Modra <amodra@bigpond.net.au>
	* scripts/config.sub: Add powerpc64 to supported targets.
	* scripts/versions.awk: Add support for dot symbols as required by powerpc64.	
	Patch by Alan Modra <amodra@bigpond.net.au>
	* shlib-versions: Set DEFAULT version to 2.2.5 for powerpc64.
	* sysdeps/unix/sysv/linux/configure & configure.in: 
	Set arch_minimum_kernel=2.4.13 for powerpc64. Also move *.so's to /lib64.
	Also use ldd-rewrite.sed from sysdeps/unix/sysv/linux/powerpc/.
	* sysdeps/unix/sysv/linux/kernel-features.h: Select features for 
	powerpc64 and 2.4.13 kernel.
	* sysdeps/powerpc/Dist: Remove 32-/64-bit dependent enties.	
	* sysdeps/powerpc/ppc32/Dist: New file.  Include 32-bit dependent enties
	from sysdeps/powerpc/Dist.
	* sysdeps/powerpc/Implies: Remove wordsize-32 and powerpc/soft-fp enties.
	* sysdeps/powerpc/ppc32/Implies: New file.  Add entries for wordsize-32 
	and powerpc/soft-fp.
	* sysdeps/powerpc/Makefile: Remove powerpc32 specific flags -Wa,-mppc
	* sysdeps/powerpc/ppc32/Makefile: New file.  Specify powerpc32 flags 
	-Wa,-mppc.
	* sysdeps/powerpc/ppc32/Versions: New file.  version fpr and gpr 
	save/restore symbols.
	* sysdeps/unix/sysv/linux/powerpc/Dist: Remove clone.S from list
	* sysdeps/unix/sysv/linux/powerpc/ppc32/Dist: New file.  Add clone.S to list.

>>>>>>>> ppc64-config-20020815.patch
diff -rc2PN -x *.orig libc23-cvstip-20020815/FAQ.in libc23/FAQ.in
*** libc23-cvstip-20020815/FAQ.in	Sun May 19 13:37:21 2002
--- libc23/FAQ.in	Thu Aug 15 16:54:50 2002
***************
*** 31,34 ****
--- 31,35 ----
  	alpha*-*-linux-gnu	Linux-2.x on DEC Alpha
  	powerpc-*-linux-gnu     Linux and MkLinux on PowerPC systems
+ 	powerpc64-*-linux-gnu	Linux-2.4+ on 64-bit PowerPC systems
  	sparc-*-linux-gnu	Linux-2.x on SPARC
  	sparc64-*-linux-gnu	Linux-2.x on UltraSPARC
***************
*** 101,104 ****
--- 102,110 ----
  of all the other tools, of course).  See also ?excpt.
  
+ ??powerpc64	Which compiler should I use for powerpc64?
+ 
+ {SM} You want to use at least gcc 3.1.1 (together with the right versions
+ of all the other tools, of course). 
+ 
  ??arm	Which tools should I use for ARM?
  
***************
*** 1669,1672 ****
--- 1675,1679 ----
  {AO} Alexandre Oliva, <aoliva@redhat.com>
  {BH} Bruno Haible, <haible@clisp.cons.org>
+ {SM} Steven Munroe, <sjmunroe@us.ibm.com>
  
  Local Variables:
diff -rc2PN -x *.orig libc23-cvstip-20020815/Makeconfig libc23/Makeconfig
*** libc23-cvstip-20020815/Makeconfig	Tue Apr 30 17:00:46 2002
--- libc23/Makeconfig	Thu Aug 15 16:54:50 2002
***************
*** 667,671 ****
--- 667,674 ----
  libtype.os := lib%_pic.a
  # This can be changed by a sysdep makefile
+ # PPC64 is always so gcc complains if you specify -fpic or -fPIC
+ ifneq (powerpc64,$(config-machine))
  pic-ccflag = -fPIC
+ endif
  endif
  ifeq (yes,$(build-profile))
diff -rc2PN -x *.orig libc23-cvstip-20020815/Makerules libc23/Makerules
*** libc23-cvstip-20020815/Makerules	Sun Aug  4 20:21:06 2002
--- libc23/Makerules	Thu Aug 15 16:54:50 2002
***************
*** 296,299 ****
--- 296,300 ----
  	  | LC_ALL=C $(AWK) -v buildroot=$(common-objpfx) -v defsfile=$< \
  			    -v move_if_change='$(move-if-change)' \
+ 			    -v dotsyms=$(if $findstring(powerpc64,$(config-machine)),1,0) \
  			    -f $(word 3,$^); \
  	) > $@T
diff -rc2PN -x *.orig libc23-cvstip-20020815/README libc23/README
*** libc23-cvstip-20020815/README	Thu Dec  6 17:48:26 2001
--- libc23/README	Thu Aug 15 16:54:50 2002
***************
*** 11,14 ****
--- 11,15 ----
  		alpha*-*-linux-gnu	Linux-2.x on DEC Alpha
  		powerpc-*-linux-gnu     Linux and MkLinux on PowerPC systems
+ 		powerpc64-*-linux-gnu	Linux-2.4+ on 64-bit PowerPC systems
  		sparc-*-linux-gnu	Linux-2.x on SPARC
  		sparc64-*-linux-gnu	Linux-2.x on UltraSPARC 64-bit
diff -rc2PN -x *.orig libc23-cvstip-20020815/configure.in libc23/configure.in
*** libc23-cvstip-20020815/configure.in	Thu Aug 15 00:59:53 2002
--- libc23/configure.in	Thu Aug 15 16:54:50 2002
***************
*** 313,316 ****
--- 313,318 ----
  mips64*)	base_machine=mips64 machine=mips/mips64/$machine ;;
  mips*)		base_machine=mips machine=mips/$machine ;;
+ powerpc)	base_machine=powerpc machine=powerpc/ppc32 ;;
+ powerpc64)	base_machine=powerpc machine=powerpc/ppc64 ;;
  s390)           base_machine=s390 machine=s390/s390-32 ;;
  s390x)          base_machine=s390 machine=s390/s390-64 ;;
***************
*** 874,879 ****
  
  # The Aix ld uses global .symbol_names instead of symbol_names.
! case "$os" in
! aix4.3*)
    AC_DEFINE(HAVE_ASM_GLOBAL_DOT_NAME)
  esac
--- 876,882 ----
  
  # The Aix ld uses global .symbol_names instead of symbol_names.
! # So does powerpc64-linux
! case "${os}${machine}" in
! aix4.3* | linux*powerpc/ppc64*)
    AC_DEFINE(HAVE_ASM_GLOBAL_DOT_NAME)
  esac
***************
*** 1455,1458 ****
--- 1458,1474 ----
  			    -o conftest conftest.c -lgcc >&AC_FD_CC]); then
    libc_cv_gcc_dwarf2_unwind_info=static
+ else
+   libc_cv_gcc_dwarf2_unwind_info=no
+ fi
+ if AC_TRY_COMMAND([${CC-cc} $CFLAGS -DCHECK__register_frame_info
+                             -nostdlib -nostartfiles
+                             -o conftest conftest.c -lgcc -lgcc_eh >&AC_FD_CC]); then
+   if ${CC-cc} $CFLAGS -DCHECK__register_frame_info -nostdlib -nostartfiles \
+      -o conftest conftest.c -lgcc -lgcc_eh -v 2>&1 >/dev/null \
+      | grep -q -- --eh-frame-hdr; then
+     libc_cv_gcc_dwarf2_unwind_info=no_registry_needed
+   else
+     libc_cv_gcc_dwarf2_unwind_info=static
+   fi
  else
    libc_cv_gcc_dwarf2_unwind_info=no
diff -rc2PN -x *.orig libc23-cvstip-20020815/scripts/config.guess libc23/scripts/config.guess
*** libc23-cvstip-20020815/scripts/config.guess	Thu Jul  4 02:15:21 2002
--- libc23/scripts/config.guess	Thu Aug 15 16:54:50 2002
***************
*** 822,825 ****
--- 822,854 ----
  	echo powerpc64-unknown-linux-gnu
  	exit 0 ;;
+     ppc64:Linux:*:*)
+ 	# Determine Lib Version
+ 	cat >$dummy.c <<EOF
+ #include <features.h>
+ #if defined(__GLIBC__)
+ extern char __libc_version[];
+ extern char __libc_release[];
+ #endif
+ main(argc, argv)
+      int argc;
+      char *argv[];
+ {
+ #if defined(__GLIBC__)
+   printf("%s %s\n", __libc_version, __libc_release);
+ #else
+   printf("unknown\n");
+ #endif
+   return 0;
+ }
+ EOF
+ 	LIBC=""
+ 	$CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null
+ 	if test "$?" = 0 ; then
+ 		./$dummy | grep 1\.99 > /dev/null
+ 		if test "$?" = 0 ; then LIBC="libc1" ; fi
+ 	fi
+ 	rm -f $dummy.c $dummy
+ 	echo powerpc64-unknown-linux-gnu${LIBC}
+ 	exit 0 ;;
      alpha:Linux:*:*)
  	case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
diff -rc2PN -x *.orig libc23-cvstip-20020815/scripts/versions.awk libc23/scripts/versions.awk
*** libc23-cvstip-20020815/scripts/versions.awk	Wed Feb  6 23:24:29 2002
--- libc23/scripts/versions.awk	Thu Aug 15 16:54:50 2002
***************
*** 121,124 ****
--- 121,131 ----
      }
      printf("\n") > outfile;
+     if (dotsyms) {
+       printf("   ") > outfile;
+       for (n = 3; n <= NF; ++n) {
+         printf(" .%s", $n) > outfile;
+       }
+       printf("\n") > outfile;
+     }
    }
    printf("\n");
diff -rc2PN -x *.orig libc23-cvstip-20020815/shlib-versions libc23/shlib-versions
*** libc23-cvstip-20020815/shlib-versions	Tue Jun 11 18:03:18 2002
--- libc23/shlib-versions	Thu Aug 15 16:54:50 2002
***************
*** 25,28 ****
--- 25,29 ----
  cris-.*-linux.*		DEFAULT			GLIBC_2.2
  x86_64-.*-linux.*       DEFAULT			GLIBC_2.2.5
+ powerpc64-.*-linux.*	DEFAULT			GLIBC_2.2.5
  .*-.*-gnu-gnu.*		DEFAULT			GLIBC_2.2.6
  
***************
*** 70,73 ****
--- 71,75 ----
  hppa.*-.*-.*		ld=ld.so.1		GLIBC_2.2
  s390x-.*-linux.*	ld=ld64.so.1		GLIBC_2.2
+ powerpc64.*-.*-linux.*	ld=ld64.so.1		GLIBC_2.2.5
  cris-.*-linux.*		ld=ld.so.1		GLIBC_2.2
  x86_64-.*-linux.*	ld=ld-linux-x86-64.so.2	GLIBC_2.2.5
diff -rc2PN -x *.orig libc23-cvstip-20020815/sysdeps/unix/sysv/linux/configure.in libc23/sysdeps/unix/sysv/linux/configure.in
*** libc23-cvstip-20020815/sysdeps/unix/sysv/linux/configure.in	Sun Jul 28 17:40:47 2002
--- libc23/sysdeps/unix/sysv/linux/configure.in	Thu Aug 15 16:54:50 2002
***************
*** 76,81 ****
      ;;
    powerpc*)
!     libc_cv_gcc_unwind_find_fde=yes
!     arch_minimum_kernel=2.0.10
      ;;
    s390/s390-32)
--- 76,85 ----
      ;;
    powerpc*)
!     if test "$machine" = "powerpc/ppc64"; then
!       arch_minimum_kernel=2.4.13
!     else
!       libc_cv_gcc_unwind_find_fde=yes
!       arch_minimum_kernel=2.0.10
!     fi
      ;;
    s390/s390-32)
***************
*** 152,156 ****
  if test "$prefix" = "/usr" -o "$prefix" = "/usr/"; then
    # 64bit libraries on sparc go to /lib64 and not /lib
!   if test "$machine" = "sparc/sparc64" -o "$machine" = "x86_64"; then
      libc_cv_slibdir="/lib64"
      if test "$libdir" = '${exec_prefix}/lib'; then
--- 156,160 ----
  if test "$prefix" = "/usr" -o "$prefix" = "/usr/"; then
    # 64bit libraries on sparc go to /lib64 and not /lib
!   if test "$machine" = "sparc/sparc64" -o "$machine" = "x86_64" -o "$machine" = "powerpc/ppc64" -o "$machine" = "s390/s390-64"; then
      libc_cv_slibdir="/lib64"
      if test "$libdir" = '${exec_prefix}/lib'; then
***************
*** 235,238 ****
--- 239,245 ----
    x86_64*)
      ldd_rewrite_script=../sysdeps/unix/sysv/linux/x86_64/ldd-rewrite.sed
+     ;;
+   powerpc*)
+     ldd_rewrite_script=../sysdeps/unix/sysv/linux/powerpc/ldd-rewrite.sed
      ;;
    *)
diff -rc2PN -x *.orig libc23-cvstip-20020815/sysdeps/unix/sysv/linux/kernel-features.h libc23/sysdeps/unix/sysv/linux/kernel-features.h
*** libc23-cvstip-20020815/sysdeps/unix/sysv/linux/kernel-features.h	Thu Aug 15 07:58:40 2002
--- libc23/sysdeps/unix/sysv/linux/kernel-features.h	Thu Aug 15 16:54:50 2002
***************
*** 104,111 ****
  #endif
  
! /* I know for sure that these are in 2.3.35 on powerpc.  */
  #if __LINUX_KERNEL_VERSION >= 131875 && defined __powerpc__
! # define __ASSUME_TRUNCATE64_SYSCALL	1
! # define __ASSUME_STAT64_SYSCALL	1
  # define __ASSUME_NEW_GETRLIMIT_SYSCALL	1
  #endif
--- 104,114 ----
  #endif
  
! /* I know for sure that these are in 2.3.35 on powerpc. But PowerPC64 does not 
!    support a separate 64-bit syscall, already 64-bit */
  #if __LINUX_KERNEL_VERSION >= 131875 && defined __powerpc__
! # if !defined __powerpc64__
! #  define __ASSUME_TRUNCATE64_SYSCALL	1
! #  define __ASSUME_STAT64_SYSCALL	1
! # endif
  # define __ASSUME_NEW_GETRLIMIT_SYSCALL	1
  #endif
***************
*** 123,129 ****
  #endif
  
! /* Linux 2.4.0 on PPC introduced a correct IPC64.  */
  #if __LINUX_KERNEL_VERSION >= 132096 && defined __powerpc__
! # define __ASSUME_IPC64			1
  #endif
  
--- 126,135 ----
  #endif
  
! /* Linux 2.4.0 on PPC introduced a correct IPC64. But PowerPC64 does not 
!    support a separate 64-bit sys call, already 64-bit */
  #if __LINUX_KERNEL_VERSION >= 132096 && defined __powerpc__
! # if !defined __powerpc64__
! #  define __ASSUME_IPC64			1
! # endif
  #endif
  
***************
*** 148,155 ****
  
  /* Arm got fcntl64 in 2.4.4, PowerPC and SH have it also in 2.4.4 (I
!    don't know when it got introduced).  */
  #if __LINUX_KERNEL_VERSION >= 132100 \
      && (defined __arm__ || defined __powerpc__ || defined __sh__)
! # define __ASSUME_FCNTL64		1
  #endif
  
--- 154,164 ----
  
  /* Arm got fcntl64 in 2.4.4, PowerPC and SH have it also in 2.4.4 (I
!    don't know when it got introduced).  But PowerPC64 does not support
!    separate FCNTL64 call, FCNTL is already 64-bit */
  #if __LINUX_KERNEL_VERSION >= 132100 \
      && (defined __arm__ || defined __powerpc__ || defined __sh__)
! # if !defined __powerpc64__
! #  define __ASSUME_FCNTL64		1
! # endif
  #endif
  
***************
*** 179,186 ****
  
  /* Starting with 2.4.5 kernels PPC passes the AUXV in the standard way
!    and the mmap2 syscall made it into the official kernel.  */
  #if __LINUX_KERNEL_VERSION >= (132096+5) && defined __powerpc__
  # define __ASSUME_STD_AUXV		1
! # define __ASSUME_MMAP2_SYSCALL		1
  #endif
  
--- 188,198 ----
  
  /* Starting with 2.4.5 kernels PPC passes the AUXV in the standard way
!    and the mmap2 syscall made it into the official kernel.  But 
!    PowerPC64 does not support a separate MMAP2 call. */
  #if __LINUX_KERNEL_VERSION >= (132096+5) && defined __powerpc__
  # define __ASSUME_STD_AUXV		1
! # if !defined __powerpc64__
! #   define __ASSUME_MMAP2_SYSCALL		1
! # endif
  #endif
  
diff -rc2PN -x *.orig libc23-cvstip-20020815/sysdeps/powerpc/Dist libc23/sysdeps/powerpc/Dist
*** libc23-cvstip-20020815/sysdeps/powerpc/Dist	Fri Dec  7 17:59:15 2001
--- libc23/sysdeps/powerpc/Dist	Thu Aug 15 16:54:50 2002
***************
*** 1,8 ****
- dl-machine.c
- dl-start.S
- ppc-mcount.S
- gprsave1.S
- gprsave0.S
- gprrest1.S
- gprrest0.S
  bp-asm.h
--- 1 ----
diff -rc2PN -x *.orig libc23-cvstip-20020815/sysdeps/powerpc/Implies libc23/sysdeps/powerpc/Implies
*** libc23-cvstip-20020815/sysdeps/powerpc/Implies	Tue Sep  5 10:04:33 2000
--- libc23/sysdeps/powerpc/Implies	Thu Aug 15 16:54:50 2002
***************
*** 1,4 ****
- wordsize-32
  ieee754/flt-32
  ieee754/dbl-64
- powerpc/soft-fp
--- 1,2 ----
diff -rc2PN -x *.orig libc23-cvstip-20020815/sysdeps/powerpc/Makefile libc23/sysdeps/powerpc/Makefile
*** libc23-cvstip-20020815/sysdeps/powerpc/Makefile	Mon May 20 19:19:59 2002
--- libc23/sysdeps/powerpc/Makefile	Fri Aug 16 10:30:00 2002
***************
*** 1,11 ****
  # We always want to use the new mnemonic syntax even if we are on a RS6000
  # machine.
! +cflags += -mnew-mnemonics -Wa,-mppc -mpowerpc
! asm-CPPFLAGS += -Wa,-mppc
! 
! ifeq ($(with-fp),no)
! +cflags += -msoft-float
! sysdep-LDFLAGS += -msoft-float
! endif
  
  ifeq ($(subdir),gmon)
--- 1,6 ----
  # We always want to use the new mnemonic syntax even if we are on a RS6000
  # machine.
! # from .sysdeps/powerpc
! +cflags += -mnew-mnemonics
  
  ifeq ($(subdir),gmon)
***************
*** 13,44 ****
  endif
  
! ifeq ($(subdir),misc)
! sysdep_routines += gprsave0 gprrest0 gprsave1 gprrest1
! endif
! 
! # On PPC, -fpic works until the GOT contains 2^15 bytes, and possibly
  # more depending on how clever the linker is.  Each GOT entry takes 4 bytes,
  # so that's at least 8192 entries.  Since libc only uses about 2000 entries,
  # we want to use -fpic, because this generates fewer relocs.
  ifeq (yes,$(build-shared))
  pic-ccflag = -fpic
  endif
- 
- ifeq ($(subdir),csu)
- ifneq ($(elf),no)
- # The initfini generation code doesn't work in the presence of -fPIC, so
- # we use -fpic instead which is much better.
- CFLAGS-initfini.s = -g0 -fpic -O1
- 
- # There is no benefit to using sdata for these objects, and the user
- # of the library should be able to control what goes into sdata.
- CFLAGS-init.o = -G0
- CFLAGS-gmon-start.o = -G0
- endif
- ifeq (yes,$(build-shared))
- # Compatibility
- sysdep_routines += divdi3 libgcc-compat
- shared-only-routines += divdi3 libgcc-compat
- endif
  endif
  
--- 8,20 ----
  endif
  
! # On PPC32, -fpic works until the GOT contains 2^15 bytes, and possibly
  # more depending on how clever the linker is.  Each GOT entry takes 4 bytes,
  # so that's at least 8192 entries.  Since libc only uses about 2000 entries,
  # we want to use -fpic, because this generates fewer relocs.
  ifeq (yes,$(build-shared))
+ # PPC64 is always PIC so gcc complains if you specify -fpic
+ ifneq (powerpc64,$(config-machine))
  pic-ccflag = -fpic
  endif
  endif
  
***************
*** 51,55 ****
  sysdep-dl-routines += dl-machine
  sysdep_routines += dl-machine
- # extra shared linker files to link only into dl-allobjs.so
- sysdep-rtld-routines += dl-machine dl-start
  endif
--- 27,29 ----
diff -rc2PN -x *.orig libc23-cvstip-20020815/sysdeps/powerpc/Versions libc23/sysdeps/powerpc/Versions
*** libc23-cvstip-20020815/sysdeps/powerpc/Versions	Tue May 14 23:28:00 2002
--- libc23/sysdeps/powerpc/Versions	Thu Aug 15 16:54:50 2002
***************
*** 1,12 ****
- libc {
-   GLIBC_2.0 {
-     # Functions from libgcc.
-     __divdi3; __moddi3; __udivdi3; __umoddi3;
-     __cmpdi2; __ucmpdi2;
-     __ashldi3; __ashrdi3; __lshrdi3;
-     __fixdfdi; __fixunsdfdi;
-     __fixsfdi; __fixunssfdi;
-   }
- }
  
  libm {
--- 1,2 ----
diff -rc2PN -x *.orig libc23-cvstip-20020815/sysdeps/powerpc/ppc32/Dist libc23/sysdeps/powerpc/ppc32/Dist
*** libc23-cvstip-20020815/sysdeps/powerpc/ppc32/Dist	Wed Dec 31 18:00:00 1969
--- libc23/sysdeps/powerpc/ppc32/Dist	Thu Aug 15 16:54:50 2002
***************
*** 0 ****
--- 1,7 ----
+ dl-machine.c
+ dl-start.S
+ ppc-mcount.S
+ gprsave1.S
+ gprsave0.S
+ gprrest1.S
+ gprrest0.S
diff -rc2PN -x *.orig libc23-cvstip-20020815/sysdeps/powerpc/ppc32/Implies libc23/sysdeps/powerpc/ppc32/Implies
*** libc23-cvstip-20020815/sysdeps/powerpc/ppc32/Implies	Wed Dec 31 18:00:00 1969
--- libc23/sysdeps/powerpc/ppc32/Implies	Thu Aug 15 16:54:50 2002
***************
*** 0 ****
--- 1,2 ----
+ wordsize-32
+ powerpc/soft-fp
diff -rc2PN -x *.orig libc23-cvstip-20020815/sysdeps/powerpc/ppc32/Makefile libc23/sysdeps/powerpc/ppc32/Makefile
*** libc23-cvstip-20020815/sysdeps/powerpc/ppc32/Makefile	Wed Dec 31 18:00:00 1969
--- libc23/sysdeps/powerpc/ppc32/Makefile	Fri Aug 16 10:31:28 2002
***************
*** 0 ****
--- 1,45 ----
+ # We always want to use the new mnemonic syntax even if we are on a RS6000
+ # machine.
+ # from .sysdeps/powerpc/ppc32
+ +cflags +=  -Wa,-mppc -mpowerpc
+ asm-CPPFLAGS += -Wa,-mppc
+ 
+ ifeq ($(with-fp),no)
+ +cflags += -msoft-float
+ sysdep-LDFLAGS += -msoft-float
+ endif
+ 
+ ifeq ($(subdir),misc)
+ sysdep_routines += gprsave0 gprrest0 gprsave1 gprrest1
+ endif
+ 
+ # On PPC, -fpic works until the GOT contains 2^15 bytes, and possibly
+ # more depending on how clever the linker is.  Each GOT entry takes 4 bytes,
+ # so that's at least 8192 entries.  Since libc only uses about 2000 entries,
+ # we want to use -fpic, because this generates fewer relocs.
+ ifeq (yes,$(build-shared))
+ pic-ccflag = -fpic
+ endif
+ 
+ ifeq ($(subdir),csu)
+ ifneq ($(elf),no)
+ # The initfini generation code doesn't work in the presence of -fPIC, so
+ # we use -fpic instead which is much better.
+ CFLAGS-initfini.s = -g0 -fpic -O1
+ 
+ # There is no benefit to using sdata for these objects, and the user
+ # of the library should be able to control what goes into sdata.
+ CFLAGS-init.o = -G0
+ CFLAGS-gmon-start.o = -G0
+ endif
+ ifeq (yes,$(build-shared))
+ # Compatibility
+ sysdep_routines += divdi3 libgcc-compat
+ shared-only-routines += divdi3 libgcc-compat
+ endif
+ endif
+ 
+ ifeq ($(subdir),elf)
+ # extra shared linker files to link only into dl-allobjs.so
+ sysdep-rtld-routines += dl-machine dl-start
+ endif
diff -rc2PN -x *.orig libc23-cvstip-20020815/sysdeps/powerpc/ppc32/Versions libc23/sysdeps/powerpc/ppc32/Versions
*** libc23-cvstip-20020815/sysdeps/powerpc/ppc32/Versions	Wed Dec 31 18:00:00 1969
--- libc23/sysdeps/powerpc/ppc32/Versions	Thu Aug 15 16:54:50 2002
***************
*** 0 ****
--- 1,37 ----
+ libc {
+   GLIBC_2.0 {
+     # Functions from libgcc.
+     __divdi3; __moddi3; __udivdi3; __umoddi3;
+     __cmpdi2; __ucmpdi2;
+     __ashldi3; __ashrdi3; __lshrdi3;
+     __fixdfdi; __fixunsdfdi;
+     __fixsfdi; __fixunssfdi;
+   }
+ }
+ 
+ libm {
+   GLIBC_2.1 {
+     # symbols used in macros from sysdeps/powerpc/bits/fenv.h
+     __fe_dfl_env; __fe_enabled_env; __fe_nonieee_env; __fe_nomask_env;
+   }
+   GLIBC_2.2 {
+     # Special functions to save and restore registers used by the
+     # runtime libraries.
+     _restgpr0_13; _restgpr0_14; _restgpr0_15; _restgpr0_16; _restgpr0_17;
+     _restgpr0_18; _restgpr0_19; _restgpr0_20; _restgpr0_21; _restgpr0_22;
+     _restgpr0_22; _restgpr0_23; _restgpr0_24; _restgpr0_25; _restgpr0_26;
+     _restgpr0_27; _restgpr0_28; _restgpr0_29; _restgpr0_30; _restgpr0_31;
+     _savegpr0_13; _savegpr0_14; _savegpr0_15; _savegpr0_16; _savegpr0_17;
+     _savegpr0_18; _savegpr0_19; _savegpr0_20; _savegpr0_21; _savegpr0_22;
+     _savegpr0_22; _savegpr0_23; _savegpr0_24; _savegpr0_25; _savegpr0_26;
+     _savegpr0_27; _savegpr0_28; _savegpr0_29; _savegpr0_30; _savegpr0_31;
+     _restgpr1_13; _restgpr1_14; _restgpr1_15; _restgpr1_16; _restgpr1_17;
+     _restgpr1_18; _restgpr1_19; _restgpr1_20; _restgpr1_21; _restgpr1_22;
+     _restgpr1_22; _restgpr1_23; _restgpr1_24; _restgpr1_25; _restgpr1_26;
+     _restgpr1_27; _restgpr1_28; _restgpr1_29; _restgpr1_30; _restgpr1_31;
+     _savegpr1_13; _savegpr1_14; _savegpr1_15; _savegpr1_16; _savegpr1_17;
+     _savegpr1_18; _savegpr1_19; _savegpr1_20; _savegpr1_21; _savegpr1_22;
+     _savegpr1_22; _savegpr1_23; _savegpr1_24; _savegpr1_25; _savegpr1_26;
+     _savegpr1_27; _savegpr1_28; _savegpr1_29; _savegpr1_30; _savegpr1_31;
+   }
+ }
diff -rc2PN -x *.orig libc23-cvstip-20020815/sysdeps/unix/sysv/linux/powerpc/Dist libc23/sysdeps/unix/sysv/linux/powerpc/Dist
*** libc23-cvstip-20020815/sysdeps/unix/sysv/linux/powerpc/Dist	Tue Apr 10 19:25:39 2001
--- libc23/sysdeps/unix/sysv/linux/powerpc/Dist	Thu Aug 15 16:54:50 2002
***************
*** 1,3 ****
- clone.S
  fe_nomask.c
  ipc_priv.h
--- 1,2 ----
diff -rc2PN -x *.orig libc23-cvstip-20020815/sysdeps/unix/sysv/linux/powerpc/Makefile libc23/sysdeps/unix/sysv/linux/powerpc/Makefile
*** libc23-cvstip-20020815/sysdeps/unix/sysv/linux/powerpc/Makefile	Sat Mar 23 19:55:18 2002
--- libc23/sysdeps/unix/sysv/linux/powerpc/Makefile	Wed Dec 31 18:00:00 1969
***************
*** 1,8 ****
- ifeq ($(subdir),signal)
- sysdep_routines += rt_sigsuspend rt_sigprocmask rt_sigtimedwait	\
- 		   rt_sigqueueinfo rt_sigaction rt_sigpending
- endif
- 
- ifeq ($(subdir),resource)
- sysdep_routines += oldgetrlimit64
- endif
--- 0 ----
diff -rc2PN -x *.orig libc23-cvstip-20020815/sysdeps/unix/sysv/linux/powerpc/ldd-rewrite.sed libc23/sysdeps/unix/sysv/linux/powerpc/ldd-rewrite.sed
*** libc23-cvstip-20020815/sysdeps/unix/sysv/linux/powerpc/ldd-rewrite.sed	Wed Dec 31 18:00:00 1969
--- libc23/sysdeps/unix/sysv/linux/powerpc/ldd-rewrite.sed	Thu Aug 15 16:54:50 2002
***************
*** 0 ****
--- 1,15 ----
+ /LD_TRACE_LOADED_OBJECTS=1/a\
+ add_env="$add_env LD_LIBRARY_VERSION=\\$verify_out"
+ 
+ # ldd is generated from elf/ldd.bash.in with the name
+ # of ld.so as generated in Makeconfig
+ 
+ # that name is replaced by a pair referring to both
+ # the 32bit and 64bit dynamic linker.
+ 
+ # /lib(64|)/*(64|).so* is replaced with /lib/*.so* and /lib64/*64.so*
+ # this works for /lib64/ld64.so.x and /lib/ld.so.x as input
+ s_lib64_lib_
+ s_64\.so_\.so_
+ s_^RTLDLIST=\(.*lib\)\(/[^/]*\)\(\.so\.[0-9.]*\)[[:blank:]]*$_RTLDLIST="\1\2\3 \164\264\3"_
+ 
diff -rc2PN -x *.orig libc23-cvstip-20020815/sysdeps/unix/sysv/linux/powerpc/ppc32/Dist libc23/sysdeps/unix/sysv/linux/powerpc/ppc32/Dist
*** libc23-cvstip-20020815/sysdeps/unix/sysv/linux/powerpc/ppc32/Dist	Wed Dec 31 18:00:00 1969
--- libc23/sysdeps/unix/sysv/linux/powerpc/ppc32/Dist	Thu Aug 15 16:54:50 2002
***************
*** 0 ****
--- 1,2 ----
+ clone.S
+ 
diff -rc2PN -x *.orig libc23-cvstip-20020815/sysdeps/unix/sysv/linux/powerpc/ppc32/Makefile libc23/sysdeps/unix/sysv/linux/powerpc/ppc32/Makefile
*** libc23-cvstip-20020815/sysdeps/unix/sysv/linux/powerpc/ppc32/Makefile	Wed Dec 31 18:00:00 1969
--- libc23/sysdeps/unix/sysv/linux/powerpc/ppc32/Makefile	Thu Aug 15 16:54:50 2002
***************
*** 0 ****
--- 1,12 ----
+ ifeq ($(subdir),signal)
+ sysdep_routines += rt_sigsuspend rt_sigprocmask rt_sigtimedwait	\
+ 		   rt_sigqueueinfo rt_sigaction rt_sigpending
+ endif
+ 
+ ifeq ($(subdir),csu)
+ CFLAGS-initfini.s += -DWEAK_GMON_START
+ endif
+ 
+ ifeq ($(subdir),resource)
+ sysdep_routines += oldgetrlimit64
+ endif
diff -rc2PN -x *.orig libc23-cvstip-20020815/sysdeps/unix/sysv/linux/powerpc/ppc32/Versions libc23/sysdeps/unix/sysv/linux/powerpc/ppc32/Versions
*** libc23-cvstip-20020815/sysdeps/unix/sysv/linux/powerpc/ppc32/Versions	Wed Dec 31 18:00:00 1969
--- libc23/sysdeps/unix/sysv/linux/powerpc/ppc32/Versions	Thu Aug 15 16:54:50 2002
***************
*** 0 ****
--- 1,23 ----
+ libc {
+   GLIBC_2.0 {
+     # Exception handling support functions from libgcc
+     __register_frame; __register_frame_table; __deregister_frame;
+     __frame_state_for; __register_frame_info_table;
+   }
+   GLIBC_2.2 {
+     # functions used in other libraries
+     __xstat64; __fxstat64; __lxstat64;
+ 
+     # g*
+     glob64;
+ 
+     # New rlimit interface
+     getrlimit; setrlimit; getrlimit64; setrlimit64;
+ 
+     # r*
+     readdir64; readdir64_r;
+ 
+     # s*
+     scandir64;
+   }
+ }
diff -rc2PN -x *.orig libc23-cvstip-20020815/sysdeps/unix/sysv/linux/powerpc/ppc64/Dist libc23/sysdeps/unix/sysv/linux/powerpc/ppc64/Dist
*** libc23-cvstip-20020815/sysdeps/unix/sysv/linux/powerpc/ppc64/Dist	Wed Dec 31 18:00:00 1969
--- libc23/sysdeps/unix/sysv/linux/powerpc/ppc64/Dist	Thu Aug 15 16:54:50 2002
***************
*** 0 ****
--- 1,2 ----
+ clone.S
+ 
diff -rc2PN -x *.orig libc23-cvstip-20020815/sysdeps/unix/sysv/linux/powerpc/ppc64/Makefile libc23/sysdeps/unix/sysv/linux/powerpc/ppc64/Makefile
*** libc23-cvstip-20020815/sysdeps/unix/sysv/linux/powerpc/ppc64/Makefile	Wed Dec 31 18:00:00 1969
--- libc23/sysdeps/unix/sysv/linux/powerpc/ppc64/Makefile	Fri Aug 16 09:33:59 2002
***************
*** 0 ****
--- 1,5 ----
+ ifeq ($(subdir),signal)
+ sysdep_routines += rt_sigsuspend rt_sigprocmask rt_sigtimedwait	\
+ 		   rt_sigqueueinfo rt_sigaction rt_sigpending
+ endif
+ 
diff -rc2PN -x *.orig libc23-cvstip-20020815/sysdeps/unix/sysv/linux/powerpc/ppc64/Versions libc23/sysdeps/unix/sysv/linux/powerpc/ppc64/Versions
*** libc23-cvstip-20020815/sysdeps/unix/sysv/linux/powerpc/ppc64/Versions	Wed Dec 31 18:00:00 1969
--- libc23/sysdeps/unix/sysv/linux/powerpc/ppc64/Versions	Thu Aug 15 16:54:50 2002
***************
*** 0 ****
--- 1,23 ----
+ libc {
+   GLIBC_2.0 {
+     # Exception handling support functions from libgcc
+     __register_frame; __register_frame_table; __deregister_frame;
+     __frame_state_for; __register_frame_info_table;
+   }
+   GLIBC_2.2 {
+     # functions used in other libraries
+     __xstat64; __fxstat64; __lxstat64;
+ 
+     # g*
+     glob64;
+ 
+     # New rlimit interface
+     getrlimit; setrlimit; getrlimit64; setrlimit64;
+ 
+     # r*
+     readdir64; readdir64_r;
+ 
+     # s*
+     scandir64;
+   }
+ }

<<<<<<<< ppc64-config-20020815.patch


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