mk: Use CWRAPPERS_PREPEND for --sysroot.
Looks like maybe the -Wl,-rpath-link business isn't necessary after all -- will leave this as is until I find evidence otherwise. (joerg says it was a workaround for NetBSD toolchain parts that weren't properly adapted to use sysroot.) With this, revert cwrappers version dependency to what it was before. But keep it as TOOL_DEPENDS, not BUILD_DEPENDS.
This commit is contained in:
parent
a64ed5a9a2
commit
a649e3b771
3 changed files with 33 additions and 11 deletions
|
@ -1,7 +1,7 @@
|
||||||
Cross-compilation in pkgsrc (user's guide) -*- outline -*-
|
Cross-compilation in pkgsrc (user's guide) -*- outline -*-
|
||||||
Taylor R. Campbell <riastradh@NetBSD.org>
|
Taylor R. Campbell <riastradh@NetBSD.org>
|
||||||
|
|
||||||
$NetBSD: HOWTO-use-crosscompile,v 1.10 2022/04/04 11:23:18 riastradh Exp $
|
$NetBSD: HOWTO-use-crosscompile,v 1.11 2022/04/10 19:54:02 riastradh Exp $
|
||||||
|
|
||||||
The following steps enable you to build binary packages for a machine
|
The following steps enable you to build binary packages for a machine
|
||||||
architecture other than the one you are building on. For example, you
|
architecture other than the one you are building on. For example, you
|
||||||
|
@ -61,14 +61,30 @@ In addition to whatever else you want in your mk.conf for pkgsrc, add:
|
||||||
MACHINE_ARCH= powerpc
|
MACHINE_ARCH= powerpc
|
||||||
.endif
|
.endif
|
||||||
|
|
||||||
You can bootstrap pkgsrc or not; it shouldn't make a difference for
|
|
||||||
cross-compilation. If you do, replace `make' by `bmake' below, of
|
|
||||||
course.
|
|
||||||
|
|
||||||
XXX Some variables, notably LOCALBASE and other paths that get baked
|
XXX Some variables, notably LOCALBASE and other paths that get baked
|
||||||
into packages, cannot currently be set differently for native and
|
into packages, cannot currently be set differently for native and
|
||||||
target packages.
|
target packages.
|
||||||
|
|
||||||
|
** Bootstrapped pkgsrc
|
||||||
|
|
||||||
|
You can bootstrap pkgsrc or not; it shouldn't make a difference for
|
||||||
|
cross-compilation. If you do:
|
||||||
|
|
||||||
|
- Replace `make' by `bmake' below.
|
||||||
|
|
||||||
|
- Make sure any ABI setting in mk.conf is conditionally set
|
||||||
|
appropriately.
|
||||||
|
|
||||||
|
For example, bootstrap on amd64 leaves ABI=64 in mk.conf, which must
|
||||||
|
be left empty or undefined for earmv7hf cross-builds. So you might
|
||||||
|
need:
|
||||||
|
|
||||||
|
.if empty(USE_CROSS_COMPILE:M[yY][eE][sS])
|
||||||
|
ABI= 64 # set for native amd64 build
|
||||||
|
.else
|
||||||
|
ABI= # empty for earmv7hf cross-build
|
||||||
|
.endif
|
||||||
|
|
||||||
* Make some packages
|
* Make some packages
|
||||||
|
|
||||||
Now packages you build normally will be cross-compiled for the target:
|
Now packages you build normally will be cross-compiled for the target:
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
# $NetBSD: compiler.mk,v 1.96 2021/12/03 07:40:26 wiz Exp $
|
# $NetBSD: compiler.mk,v 1.97 2022/04/10 19:54:02 riastradh Exp $
|
||||||
#
|
#
|
||||||
# This Makefile fragment implements handling for supported C/C++/Fortran
|
# This Makefile fragment implements handling for supported C/C++/Fortran
|
||||||
# compilers.
|
# compilers.
|
||||||
|
@ -220,6 +220,15 @@ _WRAP_EXTRA_ARGS.CC+= ${_CTF_CFLAGS}
|
||||||
CWRAPPERS_APPEND.cc+= ${_CTF_CFLAGS}
|
CWRAPPERS_APPEND.cc+= ${_CTF_CFLAGS}
|
||||||
.endif
|
.endif
|
||||||
|
|
||||||
|
# Add sysroot if using cross-compilation tools.
|
||||||
|
#
|
||||||
|
.if !empty(TOOLS_USE_CROSS_COMPILE:M[yY][eE][sS])
|
||||||
|
CWRAPPERS_PREPEND.cc+= --sysroot=${TOOLS_CROSS_DESTDIR:Q}
|
||||||
|
CWRAPPERS_PREPEND.cxx+= --sysroot=${TOOLS_CROSS_DESTDIR:Q}
|
||||||
|
CWRAPPERS_PREPEND.ld+= --sysroot=${TOOLS_CROSS_DESTDIR:Q}
|
||||||
|
# XXX cross fortran
|
||||||
|
.endif
|
||||||
|
|
||||||
# If the languages are not requested, force them not to be available
|
# If the languages are not requested, force them not to be available
|
||||||
# in the generated wrappers.
|
# in the generated wrappers.
|
||||||
#
|
#
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
# $NetBSD: cwrappers.mk,v 1.35 2022/04/04 11:23:06 riastradh Exp $
|
# $NetBSD: cwrappers.mk,v 1.36 2022/04/10 19:54:02 riastradh Exp $
|
||||||
#
|
#
|
||||||
# This Makefile fragment implements integration of pkgtools/cwrappers.
|
# This Makefile fragment implements integration of pkgtools/cwrappers.
|
||||||
|
|
||||||
.include "../../mk/wrapper/wrapper-defs.mk"
|
.include "../../mk/wrapper/wrapper-defs.mk"
|
||||||
.include "../../mk/buildlink3/bsd.buildlink3.mk"
|
.include "../../mk/buildlink3/bsd.buildlink3.mk"
|
||||||
|
|
||||||
TOOL_DEPENDS+= cwrappers>=20220403:../../pkgtools/cwrappers
|
TOOL_DEPENDS+= cwrappers>=20150314:../../pkgtools/cwrappers
|
||||||
|
|
||||||
# XXX This should be PREFIX, but USE_CROSSBASE overrides it.
|
# XXX This should be PREFIX, but USE_CROSSBASE overrides it.
|
||||||
CWRAPPERS_SRC_DIR= ${LOCALBASE}/libexec/cwrappers
|
CWRAPPERS_SRC_DIR= ${LOCALBASE}/libexec/cwrappers
|
||||||
|
@ -101,9 +101,6 @@ generate-cwrappers:
|
||||||
. endfor
|
. endfor
|
||||||
. endif
|
. endif
|
||||||
. endif
|
. endif
|
||||||
. if !empty(TOOLS_USE_CROSS_COMPILE:M[yY][eE][sS])
|
|
||||||
${RUN}echo sysroot=${TOOLS_CROSS_DESTDIR:Q} >> ${CWRAPPERS_CONFIG_DIR}/${CWRAPPERS_CONFIG.${wrappee}}
|
|
||||||
. endif
|
|
||||||
.endfor
|
.endfor
|
||||||
|
|
||||||
PREPEND_PATH+= ${WRAPPER_BINDIR}
|
PREPEND_PATH+= ${WRAPPER_BINDIR}
|
||||||
|
|
Loading…
Reference in a new issue