Page MenuHomeFreeBSD

D20261.id65641.diff
No OneTemporary

D20261.id65641.diff

Index: share/mk/bsd.compat.mk
===================================================================
--- share/mk/bsd.compat.mk
+++ share/mk/bsd.compat.mk
@@ -47,11 +47,21 @@
.else
LIB32CPUFLAGS= -mcpu=${COMPAT_CPUTYPE}
.endif
+
+.if (defined(WANT_COMPILER_TYPE) && ${WANT_COMPILER_TYPE} == gcc) || \
+ (defined(X_COMPILER_TYPE) && ${X_COMPILER_TYPE} == gcc)
LIB32CPUFLAGS+= -m32
+.else
+LIB32CPUFLAGS+= -target powerpc-unknown-freebsd13.0
+
+# Use BFD to workaround ld.lld issues on PowerPC 32 bit
+LIB32CPUFLAGS+= -fuse-ld=${LD_BFD}
+.endif
+
LIB32_MACHINE= powerpc
LIB32_MACHINE_ARCH= powerpc
LIB32WMAKEFLAGS= \
- LD="${XLD} -m elf32ppc_fbsd"
+ LD="${LD_BFD} -m elf32ppc_fbsd"
.elif ${COMPAT_ARCH:Mmips64*} != ""
HAS_COMPAT=32
Index: share/mk/bsd.cpu.mk
===================================================================
--- share/mk/bsd.cpu.mk
+++ share/mk/bsd.cpu.mk
@@ -412,3 +412,11 @@
# These come from make.conf or the command line or the environment.
CFLAGS += ${CFLAGS.${MACHINE_ARCH}}
CXXFLAGS += ${CXXFLAGS.${MACHINE_ARCH}}
+
+
+# Define ld.bfd as alternative linker to workaround ld.lld bugs
+.if defined(CROSS_BINUTILS_PREFIX)
+LD_BFD=${LOCALBASE}/bin/${CROSS_BINUTILS_PREFIX}-ld.bfd
+.else
+LD_BFD=${OBJTOP}/tmp/usr/bin/ld.bfd
+.endif
Index: stand/defs.mk
===================================================================
--- stand/defs.mk
+++ stand/defs.mk
@@ -99,6 +99,10 @@
# or powerpc64.
.if ${MACHINE_ARCH} == "powerpc64"
CFLAGS+= -m32 -mcpu=powerpc
+# Use ld.bfd to workaround ld.lld issues on PowerPC 32 bit
+.if "${COMPILER_TYPE}" == "clang" && "${LINKER_TYPE}" == "lld"
+CFLAGS+= -fuse-ld=${LD_BFD}
+.endif
.endif
# For amd64, there's a bit of mixed bag. Some of the tree (i386, lib*32) is

File Metadata

Mime Type
text/plain
Expires
Tue, Mar 17, 2:04 AM (26 m, 53 s)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
29802298
Default Alt Text
D20261.id65641.diff (1 KB)

Event Timeline