Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 9 Mar 2010 17:26:51 +0000 (UTC)
From:      Nathan Whitehorn <nwhitehorn@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-projects@freebsd.org
Subject:   svn commit: r204915 - in projects/ppc64: . contrib/gcc/config/rs6000 gnu/usr.bin/binutils/ld gnu/usr.bin/cc/cc_tools lib/libstand sys/boot sys/boot/ficl sys/boot/ofw sys/boot/powerpc sys/boot/power...
Message-ID:  <201003091726.o29HQpwU080358@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: nwhitehorn
Date: Tue Mar  9 17:26:50 2010
New Revision: 204915
URL: http://svn.freebsd.org/changeset/base/204915

Log:
  Create a bi-arch toolchain on powerpc64, and connect loader and lib32
  to the build. Some of the hacks in /sys/boot and libstand will
  disappear once projects/tbemd is merged.
  
  cc -m32 almost works correctly now outside the context of a buildworld,
  but gcc insists on overriding ld's correct idea of where 32-bit libraries
  should be found with incorrect paths.

Modified:
  projects/ppc64/Makefile.inc1
  projects/ppc64/contrib/gcc/config/rs6000/freebsd.h
  projects/ppc64/gnu/usr.bin/binutils/ld/Makefile.powerpc64
  projects/ppc64/gnu/usr.bin/cc/cc_tools/Makefile
  projects/ppc64/lib/libstand/Makefile
  projects/ppc64/sys/boot/Makefile
  projects/ppc64/sys/boot/ficl/Makefile
  projects/ppc64/sys/boot/ofw/Makefile.inc
  projects/ppc64/sys/boot/powerpc/Makefile.inc
  projects/ppc64/sys/boot/powerpc/boot1.chrp/Makefile
  projects/ppc64/sys/boot/powerpc/ofw/ldscript.powerpc
  projects/ppc64/sys/boot/powerpc/uboot/ldscript.powerpc
  projects/ppc64/sys/boot/uboot/Makefile.inc
  projects/ppc64/sys/powerpc/include/reg.h
  projects/ppc64/sys/powerpc/powerpc/elf32_machdep.c

Modified: projects/ppc64/Makefile.inc1
==============================================================================
--- projects/ppc64/Makefile.inc1	Tue Mar  9 17:16:45 2010	(r204914)
+++ projects/ppc64/Makefile.inc1	Tue Mar  9 17:26:50 2010	(r204915)
@@ -263,33 +263,47 @@ WMAKEENV+=	NO_CTF=1
 .endif
 WMAKE=		${WMAKEENV} ${MAKE} -f Makefile.inc1 DESTDIR=${WORLDTMP}
 
-.if ${TARGET_ARCH} == "amd64"
+.if ${TARGET_ARCH} == "amd64" || ${TARGET_ARCH} == "powerpc64"
 # 32 bit world
 LIB32TMP=	${OBJTREE}${.CURDIR}/lib32
 
+.if ${TARGET_ARCH} == "amd64"
 .if empty(TARGET_CPUTYPE)
 LIB32CPUFLAGS=	-march=i686 -mmmx -msse -msse2
 .else
 LIB32CPUFLAGS=	-march=${TARGET_CPUTYPE}
 .endif
-LIB32FLAGS=	-m32 ${LIB32CPUFLAGS} -mfancy-math-387 -DCOMPAT_32BIT \
+LIB32CPUFLAGS+=	-mfancy-math-387
+LIB32WMAKEENV=	MACHINE=i386 MACHINE_ARCH=i386 \
+		LD="${LD} -m elf_i386_fbsd -Y P,${LIB32TMP}/usr/lib32" \
+		AS="${AS} --32"
+
+.elif ${TARGET_ARCH} == "powerpc64"
+.if empty(TARGET_CPUTYPE)
+LIB32CPUFLAGS=	-mcpu=powerpc
+.else
+LIB32CPUFLAGS=	-mcpu=${TARGET_CPUTYPE}
+.endif
+
+LIB32WMAKEENV=	MACHINE=powerpc MACHINE_ARCH=powerpc \
+		LD="${LD} -m elf32ppc"
+.endif
+
+
+LIB32FLAGS=	-m32 ${LIB32CPUFLAGS} -DCOMPAT_32BIT \
 		-isystem ${LIB32TMP}/usr/include/ \
 		-L${LIB32TMP}/usr/lib32 \
 		-B${LIB32TMP}/usr/lib32
 
 # Yes, the flags are redundant.
-LIB32WMAKEENV=	MAKEOBJDIRPREFIX=${OBJTREE}/lib32 \
+LIB32WMAKEENV+=	MAKEOBJDIRPREFIX=${OBJTREE}/lib32 \
 		_SHLIBDIRPREFIX=${LIB32TMP} \
 		VERSION="${VERSION}" \
-		MACHINE=i386 \
-		MACHINE_ARCH=i386 \
 		INSTALL="sh ${.CURDIR}/tools/install.sh" \
 		PATH=${TMPPATH} \
 		CC="${CC} ${LIB32FLAGS}" \
 		CXX="${CXX} ${LIB32FLAGS}" \
 		OBJC="${OBJC} ${LIB32FLAGS}" \
-		LD="${LD} -m elf_i386_fbsd -Y P,${LIB32TMP}/usr/lib32" \
-		AS="${AS} --32" \
 		LIBDIR=/usr/lib32 \
 		SHLIBDIR=/usr/lib32
 
@@ -336,7 +350,7 @@ _worldtmp:
 	@echo "--------------------------------------------------------------"
 .if !defined(NO_CLEAN)
 	rm -rf ${WORLDTMP}
-.if ${TARGET_ARCH} == "amd64"
+.if defined(LIB32TMP)
 	rm -rf ${LIB32TMP}
 .endif
 .else
@@ -380,7 +394,7 @@ _cleanobj:
 	@echo ">>> stage 2.1: cleaning up the object tree"
 	@echo "--------------------------------------------------------------"
 	${_+_}cd ${.CURDIR}; ${WMAKE} ${CLEANDIR:S/^/par-/}
-.if ${TARGET_ARCH} == "amd64"
+.if defined(LIB32TMP)
 	${_+_}cd ${.CURDIR}; ${LIB32WMAKE} -f Makefile.inc1 ${CLEANDIR:S/^/par-/}
 .endif
 .endif
@@ -428,7 +442,7 @@ everything:
 	@echo ">>> stage 4.4: building everything"
 	@echo "--------------------------------------------------------------"
 	${_+_}cd ${.CURDIR}; ${WMAKE} par-all
-.if ${TARGET_ARCH} == "amd64"
+.if defined(LIB32TMP)
 build32:
 	@echo
 	@echo "--------------------------------------------------------------"
@@ -510,7 +524,7 @@ WMAKE_TGTS+=	_cleanobj _obj _build-tools
 WMAKE_TGTS+=	_cross-tools
 .endif
 WMAKE_TGTS+=	_includes _libraries _depend everything
-.if ${TARGET_ARCH} == "amd64" && ${MK_LIB32} != "no"
+.if defined(LIB32TMP) && ${MK_LIB32} != "no"
 WMAKE_TGTS+=	build32
 .endif
 
@@ -660,7 +674,7 @@ reinstall:
 	@echo ">>> Installing everything"
 	@echo "--------------------------------------------------------------"
 	${_+_}cd ${.CURDIR}; ${MAKE} -f Makefile.inc1 install
-.if ${TARGET_ARCH} == "amd64" && ${MK_LIB32} != "no"
+.if defined(LIB32TMP) && ${MK_LIB32} != "no"
 	${_+_}cd ${.CURDIR}; ${MAKE} -f Makefile.inc1 install32
 .endif
 
@@ -669,7 +683,7 @@ redistribute:
 	@echo ">>> Distributing everything"
 	@echo "--------------------------------------------------------------"
 	${_+_}cd ${.CURDIR}; ${MAKE} -f Makefile.inc1 distribute
-.if ${TARGET_ARCH} == "amd64" && ${MK_LIB32} != "no"
+.if defined(LIB32TMP) && ${MK_LIB32} != "no"
 	${_+_}cd ${.CURDIR}; ${MAKE} -f Makefile.inc1 distribute32 \
 	    DISTRIBUTION=lib32
 .endif

Modified: projects/ppc64/contrib/gcc/config/rs6000/freebsd.h
==============================================================================
--- projects/ppc64/contrib/gcc/config/rs6000/freebsd.h	Tue Mar  9 17:16:45 2010	(r204914)
+++ projects/ppc64/contrib/gcc/config/rs6000/freebsd.h	Tue Mar  9 17:26:50 2010	(r204915)
@@ -152,6 +152,43 @@
 #undef  ASM_APP_OFF
 #define ASM_APP_OFF "#NO_APP\n"
 
+/* Tell the assembler we want 32/64-bit binaries if -m32 or -m64 is passed */
+#if (TARGET_DEFAULT & MASK_64BIT)
+#define	SVR4_ASM_SPEC "%(asm_cpu) \
+%{.s: %{mregnames} %{mno-regnames}} %{.S: %{mregnames} %{mno-regnames}} \
+%{v:-V} %{Qy:} %{!Qn:-Qy} %{n} %{T} %{Ym,*} %{Yd,*} %{Wa,*:%*} \
+%{mrelocatable} %{mrelocatable-lib} %{fpic|fpie|fPIC|fPIE:-K PIC} \
+%{memb|msdata|msdata=eabi: -memb} \
+%{mlittle|mlittle-endian:-mlittle; \
+  mbig|mbig-endian      :-mbig;    \
+  mcall-aixdesc |		   \
+  mcall-freebsd |		   \
+  mcall-netbsd  |		   \
+  mcall-openbsd |		   \
+  mcall-linux   |		   \
+  mcall-gnu             :-mbig;    \
+  mcall-i960-old        :-mlittle}"
+#define LINK_OS_FREEBSD_SPEC_DEF "\
+  %{p:%nconsider using `-pg' instead of `-p' with gprof(1)} \
+  %{v:-V} \
+  %{assert*} %{R*} %{rpath*} %{defsym*} \
+  %{shared:-Bshareable %{h*} %{soname*}} \
+  %{!shared: \
+    %{!static: \
+      %{rdynamic: -export-dynamic} \
+      %{!dynamic-linker:-dynamic-linker %(fbsd_dynamic_linker) }} \
+    %{static:-Bstatic}} \
+  %{symbolic:-Bsymbolic}"
+
+
+#undef	ASM_DEFAULT_SPEC
+#undef	ASM_SPEC
+#undef	LINK_OS_FREEBSD_SPEC
+#define	ASM_DEFAULT_SPEC	"-mppc%{!m32:64}"
+#define	ASM_SPEC		"%{m32:-a32}%{!m32:-a64} " SVR4_ASM_SPEC
+#define	LINK_OS_FREEBSD_SPEC	"%{m32:-melf32ppc}%{!m32:-melf64ppc} " LINK_OS_FREEBSD_SPEC_DEF
+#endif
+
 /* _init and _fini functions are built from bits spread across many
    object files, each potentially with a different TOC pointer.  For
    that reason, place a nop after the call so that the linker can

Modified: projects/ppc64/gnu/usr.bin/binutils/ld/Makefile.powerpc64
==============================================================================
--- projects/ppc64/gnu/usr.bin/binutils/ld/Makefile.powerpc64	Tue Mar  9 17:16:45 2010	(r204914)
+++ projects/ppc64/gnu/usr.bin/binutils/ld/Makefile.powerpc64	Tue Mar  9 17:26:50 2010	(r204915)
@@ -12,7 +12,7 @@ e${NATIVE_EMULATION}.c: emulparams/${NAT
 	    ${NATIVE_EMULATION} ""  no ${NATIVE_EMULATION} ${TARGET_TUPLE}
 
 PPC32_EMULATION= elf32ppc
-_ppc32_path=	\"${TOOLS_PREFIX}/usr/lib/powerpc\"
+_ppc32_path=	\"${TOOLS_PREFIX}/usr/lib32\"
 EMS+=		${PPC32_EMULATION}
 .for ext in ${ELF_SCR_EXT}
 LDSCRIPTS+=	${PPC32_EMULATION}.${ext}

Modified: projects/ppc64/gnu/usr.bin/cc/cc_tools/Makefile
==============================================================================
--- projects/ppc64/gnu/usr.bin/cc/cc_tools/Makefile	Tue Mar  9 17:16:45 2010	(r204914)
+++ projects/ppc64/gnu/usr.bin/cc/cc_tools/Makefile	Tue Mar  9 17:26:50 2010	(r204915)
@@ -52,13 +52,14 @@ TARGET_INC+=	${GCC_CPU}/elf.h
 .if ${TARGET_ARCH} == "arm"
 TARGET_INC+=	${GCC_CPU}/aout.h
 .endif
+.if ${TARGET_ARCH} == "powerpc64"
+TARGET_INC+=	${GCC_CPU}/biarch64.h
+TARGET_INC+=    ${GCC_CPU}/default64.h
+.endif
 TARGET_INC+=	${GCC_CPU}/freebsd.h
 .if ${TARGET_ARCH} == "amd64"
 TARGET_INC+=	${GCC_CPU}/freebsd64.h
 .endif
-.if ${TARGET_ARCH} == "powerpc64"
-TARGET_INC+=    ${GCC_CPU}/default64.h
-.endif
 .if ${TARGET_ARCH} == "arm"
 TARGET_INC+=	${GCC_CPU}/arm.h
 .endif

Modified: projects/ppc64/lib/libstand/Makefile
==============================================================================
--- projects/ppc64/lib/libstand/Makefile	Tue Mar  9 17:16:45 2010	(r204914)
+++ projects/ppc64/lib/libstand/Makefile	Tue Mar  9 17:26:50 2010	(r204915)
@@ -30,10 +30,10 @@ CFLAGS+=	-mno-sse3
 .if ${MACHINE} == "pc98"
 CFLAGS+=	-Os
 .endif
-.if ${MACHINE_ARCH} == "powerpc"
+.if ${MACHINE_ARCH} == "powerpc" || ${MACHINE_ARCH} == "powerpc64"
 CFLAGS+=	-msoft-float -D_STANDALONE
 .endif
-.if ${MACHINE_ARCH} == "amd64"
+.if ${MACHINE_ARCH} == "amd64" || ${MACHINE_ARCH} == "powerpc64"
 CFLAGS+=	-m32 -I.
 .endif
 .if ${MACHINE_ARCH} == "arm"
@@ -55,8 +55,8 @@ SRCS+= ntoh.c
 # string functions from libc
 .PATH: ${.CURDIR}/../libc/string
 .if ${MACHINE_ARCH} == "i386" || ${MACHINE_ARCH} == "powerpc" || \
-	${MACHINE_ARCH} == "sparc64" || ${MACHINE_ARCH} == "amd64" || \
-	${MACHINE_ARCH} == "arm"
+	${MACHINE_ARCH} == "powerpc64" || ${MACHINE_ARCH} == "sparc64" || \
+	${MACHINE_ARCH} == "amd64" || ${MACHINE_ARCH} == "arm"
 SRCS+=	bcmp.c bcopy.c bzero.c ffs.c index.c memccpy.c memchr.c memcmp.c \
         memcpy.c memmove.c memset.c qdivrem.c rindex.c strcat.c strchr.c \
         strcmp.c strcpy.c strcspn.c strlen.c strncat.c strncmp.c strncpy.c \
@@ -78,7 +78,7 @@ SRCS+=	bcmp.c bcopy.S bzero.S ffs.S inde
 SRCS+= __divdi3.S __divsi3.S __moddi3.S __modsi3.S
 SRCS+= __udivdi3.S __udivsi3.S __umoddi3.S __umodsi3.S
 .endif
-.if ${MACHINE_ARCH} == "powerpc"
+.if ${MACHINE_ARCH} == "powerpc" || ${MACHINE_ARCH} == "powerpc64"
 .PATH: ${.CURDIR}/../libc/quad
 SRCS+=	ashldi3.c ashrdi3.c
 .PATH: ${.CURDIR}/../libc/powerpc/gen
@@ -92,6 +92,8 @@ SRCS+= uuid_equal.c uuid_is_nil.c
 # _setjmp/_longjmp
 .if ${MACHINE_ARCH} == "amd64"
 .PATH: ${.CURDIR}/i386
+.elif ${MACHINE_ARCH} == "powerpc64"
+.PATH: ${.CURDIR}/powerpc
 .else
 .PATH: ${.CURDIR}/${MACHINE_ARCH}
 .endif

Modified: projects/ppc64/sys/boot/Makefile
==============================================================================
--- projects/ppc64/sys/boot/Makefile	Tue Mar  9 17:16:45 2010	(r204914)
+++ projects/ppc64/sys/boot/Makefile	Tue Mar  9 17:26:50 2010	(r204915)
@@ -27,7 +27,7 @@ SUBDIR+=		zfs
 .endif
 
 # Pick the machine-dependent subdir based on the target architecture.
-ADIR=			${MACHINE:S/amd64/i386/:S/sun4v/sparc64/}
+ADIR=			${MACHINE:S/amd64/i386/:S/sun4v/sparc64/:S/powerpc64/powerpc/}
 .if exists(${.CURDIR}/${ADIR}/.)
 SUBDIR+=		${ADIR}
 .endif

Modified: projects/ppc64/sys/boot/ficl/Makefile
==============================================================================
--- projects/ppc64/sys/boot/ficl/Makefile	Tue Mar  9 17:16:45 2010	(r204914)
+++ projects/ppc64/sys/boot/ficl/Makefile	Tue Mar  9 17:26:50 2010	(r204915)
@@ -1,6 +1,6 @@
 # $FreeBSD$
 #
-.PATH: ${.CURDIR}/${MACHINE_ARCH:S/amd64/i386/}
+.PATH: ${.CURDIR}/${MACHINE_ARCH:S/amd64/i386/:S/powerpc64/powerpc/}
 BASE_SRCS=	dict.c ficl.c fileaccess.c float.c loader.c math64.c \
 		prefix.c search.c stack.c tools.c vm.c words.c
 
@@ -14,7 +14,7 @@ CFLAGS+=	-mno-mmx -mno-3dnow -mno-sse -m
 .if ${MACHINE_ARCH} == "i386"
 CFLAGS+=	-mno-sse3
 .endif
-.if ${MACHINE_ARCH} == "powerpc" || ${MACHINE_ARCH} == "arm"
+.if ${MACHINE_ARCH} == "powerpc" || ${MACHINE_ARCH} == "powerpc64" || ${MACHINE_ARCH} == "arm" 
 CFLAGS+=	-msoft-float
 .endif
 .if ${MACHINE} == "pc98"
@@ -45,7 +45,11 @@ SOFTWORDS=	softcore.fr jhlocal.fr marker
 CFLAGS+=	-m32 -march=i386 -I.
 .endif
 
-CFLAGS+=	-I${.CURDIR} -I${.CURDIR}/${MACHINE_ARCH:S/amd64/i386/} \
+.if ${MACHINE_ARCH} == "powerpc64"
+CFLAGS+=	-m32 -mcpu=powerpc -I.
+.endif
+
+CFLAGS+=	-I${.CURDIR} -I${.CURDIR}/${MACHINE_ARCH:S/amd64/i386/:S/powerpc64/powerpc/} \
 		-I${.CURDIR}/../common
 
 softcore.c: ${SOFTWORDS} softcore.awk

Modified: projects/ppc64/sys/boot/ofw/Makefile.inc
==============================================================================
--- projects/ppc64/sys/boot/ofw/Makefile.inc	Tue Mar  9 17:16:45 2010	(r204914)
+++ projects/ppc64/sys/boot/ofw/Makefile.inc	Tue Mar  9 17:26:50 2010	(r204915)
@@ -1,3 +1,8 @@
 # $FreeBSD$
 
+.if ${MACHINE_ARCH} == "powerpc64"
+CFLAGS+=	-m32 -mcpu=powerpc
+LDFLAGS+=	-m elf32ppc
+.endif
+
 .include "../Makefile.inc"

Modified: projects/ppc64/sys/boot/powerpc/Makefile.inc
==============================================================================
--- projects/ppc64/sys/boot/powerpc/Makefile.inc	Tue Mar  9 17:16:45 2010	(r204914)
+++ projects/ppc64/sys/boot/powerpc/Makefile.inc	Tue Mar  9 17:26:50 2010	(r204915)
@@ -2,8 +2,7 @@
 
 .if ${MACHINE_ARCH} == "powerpc64"
 CFLAGS+=	-m32 -mcpu=powerpc
-LDFLAGS+=	-m elf32-powerpc
-AFLAGS+=	--32
+LDFLAGS+=	-m elf32ppc
 .endif
 
 .include "../Makefile.inc"

Modified: projects/ppc64/sys/boot/powerpc/boot1.chrp/Makefile
==============================================================================
--- projects/ppc64/sys/boot/powerpc/boot1.chrp/Makefile	Tue Mar  9 17:16:45 2010	(r204914)
+++ projects/ppc64/sys/boot/powerpc/boot1.chrp/Makefile	Tue Mar  9 17:26:50 2010	(r204915)
@@ -13,7 +13,7 @@ SRCS=		boot1.c ashldi3.c
 INTERNALPROG=
 NO_MAN=
 
-CFLAGS= -ffreestanding -msoft-float -Os -D_KERNEL \
+CFLAGS= -ffreestanding -msoft-float -Os \
 	-I${.CURDIR}/../../common -I${.CURDIR}/../../../
 LDFLAGS=-nostdlib -static -N
 

Modified: projects/ppc64/sys/boot/powerpc/ofw/ldscript.powerpc
==============================================================================
--- projects/ppc64/sys/boot/powerpc/ofw/ldscript.powerpc	Tue Mar  9 17:16:45 2010	(r204914)
+++ projects/ppc64/sys/boot/powerpc/ofw/ldscript.powerpc	Tue Mar  9 17:26:50 2010	(r204915)
@@ -1,7 +1,7 @@
 /* $FreeBSD$ */
 
 OUTPUT_FORMAT("elf32-powerpc", "elf32-powerpc", "elf32-powerpc")
-OUTPUT_ARCH(powerpc)
+OUTPUT_ARCH(powerpc:common)
 ENTRY(_start)
 SEARCH_DIR(/usr/lib);
 /* Do we need any of these for elf?

Modified: projects/ppc64/sys/boot/powerpc/uboot/ldscript.powerpc
==============================================================================
--- projects/ppc64/sys/boot/powerpc/uboot/ldscript.powerpc	Tue Mar  9 17:16:45 2010	(r204914)
+++ projects/ppc64/sys/boot/powerpc/uboot/ldscript.powerpc	Tue Mar  9 17:26:50 2010	(r204915)
@@ -1,7 +1,7 @@
 /* $FreeBSD$ */
 
 OUTPUT_FORMAT("elf32-powerpc", "elf32-powerpc", "elf32-powerpc")
-OUTPUT_ARCH(powerpc)
+OUTPUT_ARCH(powerpc:common)
 ENTRY(_start)
 SEARCH_DIR(/usr/lib);
 PROVIDE (__stack = 0);

Modified: projects/ppc64/sys/boot/uboot/Makefile.inc
==============================================================================
--- projects/ppc64/sys/boot/uboot/Makefile.inc	Tue Mar  9 17:16:45 2010	(r204914)
+++ projects/ppc64/sys/boot/uboot/Makefile.inc	Tue Mar  9 17:26:50 2010	(r204915)
@@ -1,3 +1,8 @@
 # $FreeBSD$
 
+.if ${MACHINE_ARCH} == "powerpc64"
+CFLAGS+=	-m32 -mcpu=powerpc
+LDFLAGS+=	-m elf32ppc
+.endif
+
 .include "../Makefile.inc"

Modified: projects/ppc64/sys/powerpc/include/reg.h
==============================================================================
--- projects/ppc64/sys/powerpc/include/reg.h	Tue Mar  9 17:16:45 2010	(r204914)
+++ projects/ppc64/sys/powerpc/include/reg.h	Tue Mar  9 17:26:50 2010	(r204915)
@@ -4,7 +4,7 @@
 #ifndef _POWERPC_REG_H_
 #define	_POWERPC_REG_H_
 
-#if defined(_KERNEL) && !defined(KLD_MODULE)
+#if defined(_KERNEL) && !defined(KLD_MODULE) && !defined(_STANDALONE)
 #include "opt_compat.h"
 #endif
 

Modified: projects/ppc64/sys/powerpc/powerpc/elf32_machdep.c
==============================================================================
--- projects/ppc64/sys/powerpc/powerpc/elf32_machdep.c	Tue Mar  9 17:16:45 2010	(r204914)
+++ projects/ppc64/sys/powerpc/powerpc/elf32_machdep.c	Tue Mar  9 17:26:50 2010	(r204915)
@@ -107,7 +107,11 @@ static Elf32_Brandinfo freebsd_brand_inf
 	.emul_path	= NULL,
 	.interp_path	= "/libexec/ld-elf.so.1",
 	.sysvec		= &elf32_freebsd_sysvec,
+#ifdef __powerpc64__
+	.interp_newpath	= "/libexec/ld-elf32.so.1",
+#else
 	.interp_newpath	= NULL,
+#endif
 	.brand_note	= &elf32_freebsd_brandnote,
 	.flags		= BI_CAN_EXEC_DYN | BI_BRAND_NOTE
 };



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201003091726.o29HQpwU080358>