svn commit: r203581 - in projects/ppc64: gnu/usr.bin/gdb/arch/powerpc lib/libc/powerpc64/gen lib/libc/stdlib lib/libthr/arch/powerpc64/include rescue/rescue share/mk

Nathan Whitehorn nwhitehorn at FreeBSD.org
Sun Feb 7 00:07:38 UTC 2010


Author: nwhitehorn
Date: Sun Feb  7 00:07:37 2010
New Revision: 203581
URL: http://svn.freebsd.org/changeset/base/203581

Log:
  Correct some nits in the build process. With these changes, powerpc64
  is fully self-hosting. Next up: figure out why NO_TLS is required by
  malloc and fix it, and then begin cleaning up this branch and tying up
  loose ends.

Modified:
  projects/ppc64/gnu/usr.bin/gdb/arch/powerpc/config.h
  projects/ppc64/lib/libc/powerpc64/gen/_set_tp.c
  projects/ppc64/lib/libc/stdlib/malloc.c
  projects/ppc64/lib/libthr/arch/powerpc64/include/pthread_md.h
  projects/ppc64/rescue/rescue/Makefile
  projects/ppc64/share/mk/bsd.cpu.mk

Modified: projects/ppc64/gnu/usr.bin/gdb/arch/powerpc/config.h
==============================================================================
--- projects/ppc64/gnu/usr.bin/gdb/arch/powerpc/config.h	Sat Feb  6 23:47:55 2010	(r203580)
+++ projects/ppc64/gnu/usr.bin/gdb/arch/powerpc/config.h	Sun Feb  7 00:07:37 2010	(r203581)
@@ -446,7 +446,7 @@
 #define DEFAULT_BFD_ARCH bfd_rs6000_arch
 
 /* Define to BFD's default target vector.  */
-#define DEFAULT_BFD_VEC bfd_elf32_powerpc_vec
+#define DEFAULT_BFD_VEC bfd_elf64_powerpc_vec
 
 /* Define to 1 if your system has the _etext variable.  */
 #define HAVE__ETEXT 1

Modified: projects/ppc64/lib/libc/powerpc64/gen/_set_tp.c
==============================================================================
--- projects/ppc64/lib/libc/powerpc64/gen/_set_tp.c	Sat Feb  6 23:47:55 2010	(r203580)
+++ projects/ppc64/lib/libc/powerpc64/gen/_set_tp.c	Sun Feb  7 00:07:37 2010	(r203581)
@@ -31,5 +31,5 @@ _set_tp(void *tpval)
 {
 	register void *tp __asm__("r13");
 
-	__asm __volatile("mr %0,%1" : "=r"(tp) : "r"((char*)tpval + 0x7016));
+	__asm __volatile("mr %0,%1" : "=r"(tp) : "r"((char*)tpval + 0x7010));
 }

Modified: projects/ppc64/lib/libc/stdlib/malloc.c
==============================================================================
--- projects/ppc64/lib/libc/stdlib/malloc.c	Sat Feb  6 23:47:55 2010	(r203580)
+++ projects/ppc64/lib/libc/stdlib/malloc.c	Sun Feb  7 00:07:37 2010	(r203581)
@@ -253,6 +253,7 @@ __FBSDID("$FreeBSD$");
 #ifdef __powerpc64__
 #  define QUANTUM_2POW		4
 #  define SIZEOF_PTR_2POW	3
+#  define NO_TLS
 #elif defined(__powerpc__)
 #  define QUANTUM_2POW		4
 #  define SIZEOF_PTR_2POW	2

Modified: projects/ppc64/lib/libthr/arch/powerpc64/include/pthread_md.h
==============================================================================
--- projects/ppc64/lib/libthr/arch/powerpc64/include/pthread_md.h	Sat Feb  6 23:47:55 2010	(r203580)
+++ projects/ppc64/lib/libthr/arch/powerpc64/include/pthread_md.h	Sun Feb  7 00:07:37 2010	(r203581)
@@ -39,7 +39,7 @@
 #define	CPU_SPINWAIT
 
 #define	DTV_OFFSET		offsetof(struct tcb, tcb_dtv)
-#define	TP_OFFSET		0x8000
+#define	TP_OFFSET		0x7010
 
 /*
  * Variant I tcb. The structure layout is fixed, don't blindly

Modified: projects/ppc64/rescue/rescue/Makefile
==============================================================================
--- projects/ppc64/rescue/rescue/Makefile	Sat Feb  6 23:47:55 2010	(r203580)
+++ projects/ppc64/rescue/rescue/Makefile	Sun Feb  7 00:07:37 2010	(r203581)
@@ -47,7 +47,7 @@ CLEANFILES+= dhclient_FIXED
 # Define Makefile variable RESCUE
 CRUNCH_BUILDOPTS+= -DRESCUE
 # Define compile-time RESCUE symbol when compiling components
-.if ${TARGET_ARCH} == powerpc64
+.if ${MACHINE_ARCH} == powerpc64
 CRUNCH_BUILDOPTS+= CRUNCH_CFLAGS=\"-DRESCUE -mminimal-toc\"
 .else
 CRUNCH_BUILDOPTS+= CRUNCH_CFLAGS=-DRESCUE

Modified: projects/ppc64/share/mk/bsd.cpu.mk
==============================================================================
--- projects/ppc64/share/mk/bsd.cpu.mk	Sat Feb  6 23:47:55 2010	(r203580)
+++ projects/ppc64/share/mk/bsd.cpu.mk	Sun Feb  7 00:07:37 2010	(r203581)
@@ -12,7 +12,7 @@ MACHINE_CPU = i486
 MACHINE_CPU = amd64 sse2 sse
 . elif ${MACHINE_ARCH} == "ia64"
 MACHINE_CPU = itanium
-. elif ${MACHINE_ARCH} == "powerpc"
+. elif ${MACHINE_ARCH} == "powerpc" || ${MACHINE_ARCH} == "powerpc64"
 MACHINE_CPU = aim
 . elif ${MACHINE_ARCH} == "sparc64"
 . elif ${MACHINE_ARCH} == "arm"
@@ -121,6 +121,8 @@ _CPUCFLAGS = -Wa,-me500 -msoft-float
 .  else
 _CPUCFLAGS = -mcpu=${CPUTYPE} -mno-powerpc64
 .  endif
+. elif ${MACHINE_ARCH} == "powerpc64"
+_CPUCFLAGS = -mcpu=${CPUTYPE}
 . elif ${MACHINE_ARCH} == "mips"
 .  if ${CPUTYPE} == "mips32"
 _CPUCFLAGS = -march=mips32


More information about the svn-src-projects mailing list