aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'wrappers')
-rw-r--r--wrappers/Makefile4
-rw-r--r--wrappers/README2
-rw-r--r--wrappers/cross-ebuild7
-rwxr-xr-xwrappers/cross-emerge7
-rwxr-xr-xwrappers/cross-pkg-config8
-rwxr-xr-xwrappers/emerge-wrapper23
-rw-r--r--wrappers/etc/portage/make.conf2
-rw-r--r--wrappers/site/mipsel-linux-gnu8
8 files changed, 48 insertions, 13 deletions
diff --git a/wrappers/Makefile b/wrappers/Makefile
index 031f099..a55c2bc 100644
--- a/wrappers/Makefile
+++ b/wrappers/Makefile
@@ -1,9 +1,8 @@
-# Copyright 2008-2010 Gentoo Foundation
+# Copyright 2008-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
include ../settings.mk
-PORTDIR ?= $(shell portageq envvar PORTDIR)
FNAMES = cross-ebuild cross-emerge cross-fix-root cross-pkg-config emerge-wrapper
SITEDIR = $(PREFIX)/share/crossdev/include/site
ETC_SITEDIR = $(EPREFIX)/etc/crossdev/include/site
@@ -24,6 +23,5 @@ install:
sed -i -e s:@SITEDIR@:$(SITEDIR):g $(DESTDIR)$(SITEDIR)/config.site
sed -i -e s:@ETC_SITEDIR@:$(ETC_SITEDIR):g $(DESTDIR)$(SITEDIR)/config.site
mv $(DESTDIR)$(SITEDIR)/config.site $(DESTDIR)$(PREFIX)/share/
- ln -sf $(PORTDIR)/profiles/embedded $(DESTDIR)$(PREFIX)/share/crossdev/etc/portage/make.profile
.PHONY: all install
diff --git a/wrappers/README b/wrappers/README
index 0ff42ac..9fdb2ae 100644
--- a/wrappers/README
+++ b/wrappers/README
@@ -1,2 +1,2 @@
Drop here your local overrides for autoconf cache variables.
-See @PREFIX@/share/config.site for details.
+See @PREFIX@/share/config.site.d/80crossdev.conf for details.
diff --git a/wrappers/cross-ebuild b/wrappers/cross-ebuild
index 6f47cb8..a520e18 100644
--- a/wrappers/cross-ebuild
+++ b/wrappers/cross-ebuild
@@ -19,11 +19,16 @@ fi
: ${PORTAGE_CONFIGROOT=${SYSROOT}${EPREFIX}}
export EPREFIX SYSROOT PORTAGE_CONFIGROOT
-if [ -z "${CHOST}" ] || [ ! -d "${SYSROOT}" ] ; then
+if [ -z "${CHOST}" ] ; then
echo "cross-ebuild: CHOST is not set properly"
exit 1
fi
+if [ ! -d "${SYSROOT}" ] ; then
+ echo "cross-ebuild: ${SYSROOT} does not exist (is CHOST set properly?)"
+ exit 1
+fi
+
# Portage defaults CBUILD to CHOST, so we have to remove CHOST
# from the env to get a "good" value for CBUILD
query_vars="CBUILD CFLAGS CXXFLAGS CPPFLAGS LDFLAGS"
diff --git a/wrappers/cross-emerge b/wrappers/cross-emerge
index a85d41e..eb2d5b5 100755
--- a/wrappers/cross-emerge
+++ b/wrappers/cross-emerge
@@ -19,11 +19,16 @@ fi
: ${PORTAGE_CONFIGROOT=${SYSROOT}${EPREFIX}}
export EPREFIX SYSROOT PORTAGE_CONFIGROOT
-if [ -z "${CHOST}" ] || [ ! -d "${SYSROOT}" ] ; then
+if [ -z "${CHOST}" ] ; then
echo "cross-emerge: CHOST is not set properly"
exit 1
fi
+if [ ! -d "${SYSROOT}" ] ; then
+ echo "cross-emerge: ${SYSROOT} does not exist (is CHOST set properly?)"
+ exit 1
+fi
+
# Portage defaults CBUILD to CHOST, so we have to remove CHOST
# from the env to get a "good" value for CBUILD
query_vars="CBUILD CFLAGS CXXFLAGS CPPFLAGS LDFLAGS"
diff --git a/wrappers/cross-pkg-config b/wrappers/cross-pkg-config
index f178147..eb4047f 100755
--- a/wrappers/cross-pkg-config
+++ b/wrappers/cross-pkg-config
@@ -95,6 +95,9 @@ fi
export PKG_CONFIG_SYSROOT_DIR=${PKG_CONFIG_SYSROOT_DIR%/}
PKG_CONFIG_ESYSROOT_DIR=${PKG_CONFIG_SYSROOT_DIR}${PREFIX}
+# https://github.com/pkgconf/pkgconf/issues/205
+export PKG_CONFIG_FDO_SYSROOT_RULES=1
+
#
# Some distributions pollute the pkg-config environment.
# Time to pull a captain planet on them.
@@ -112,12 +115,15 @@ var="LIBDIR_${ABI}"
eval libdir=\${${var}}
if [ -z "${libdir}" ] ; then
# Fall back to probing the compiler.
+ ## TODO: CLANG FIX
libdir=$(realpath "$(${CC:-${CHOST}-gcc} ${CFLAGS} ${LDFLAGS} -print-file-name=pkgconfig)/..")
# Chopping the basename isn't exactly correct, but it's good enough for now.
libdir=${libdir##*/}
fi
: ${libdir:=lib}
-export PKG_CONFIG_SYSTEM_LIBRARY_PATH="${PREFIX}/usr/${libdir}:${PREFIX}/${libdir}"
+export \
+ PKG_CONFIG_SYSTEM_LIBRARY_PATH="${PKG_CONFIG_ESYSROOT_DIR}/usr/${libdir}:${PKG_CONFIG_ESYSROOT_DIR}/${libdir}" \
+ PKG_CONFIG_SYSTEM_INCLUDE_PATH="${PKG_CONFIG_ESYSROOT_DIR}/usr/include"
#
# Set the pkg-config search paths to our staging directory.
diff --git a/wrappers/emerge-wrapper b/wrappers/emerge-wrapper
index 051948a..79c182e 100755
--- a/wrappers/emerge-wrapper
+++ b/wrappers/emerge-wrapper
@@ -1,5 +1,5 @@
#!/bin/bash
-# Copyright 2008-2010 Gentoo Foundation
+# Copyright 2008-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
if [[ $1 == "--help" || $1 == "-h" ]] ; then
@@ -37,6 +37,7 @@ cross_wrap_etc()
setup_warning=false
cp -a "${PREFIX}"/share/crossdev/etc ${SYSROOT}/ || return 1
+ ln -snf "${MAIN_REPO_PATH}/profiles/embedded" "${SYSROOT}/etc/portage/make.profile" || return 1
local confs=(
${SYSROOT}/etc/portage/make.conf
@@ -86,6 +87,26 @@ cross_wrap_etc()
-e "s:__CBUILD__:${CBUILD}:g" \
"${confs[@]}"
+ if [[ "${LLVM}" == "yes" ]] ; then
+ cat <<-EOF >>${SYSROOT}/etc/portage/profile/make.defaults
+ AR=llvm-ar
+ AS=llvm-as
+ CC="${CHOST}-clang"
+ CROSS_COMPILE="${CHOST}-"
+ CXX="${CHOST}-clang++"
+ DLLTOOL=llvm-dlltool
+ HOSTCC="${CC:=clang}"
+ HOSTCXX="${CXX:=clang++}"
+ LD=ld.lld
+ LLVM=1
+ NM=llvm-nm
+ OBJCOPY=llvm-objcopy
+ RANLIB=llvm-ranlib
+ READELF=llvm-readelf
+ STRIP=llvm-strip
+ EOF
+ fi
+
return 0
}
diff --git a/wrappers/etc/portage/make.conf b/wrappers/etc/portage/make.conf
index 59bf61e..b845ba6 100644
--- a/wrappers/etc/portage/make.conf
+++ b/wrappers/etc/portage/make.conf
@@ -9,7 +9,7 @@ ROOT=@GENTOO_PORTAGE_EPREFIX@/usr/${CHOST}/
ACCEPT_KEYWORDS="${ARCH} ~${ARCH}"
-USE="${ARCH} -pam"
+USE="${ARCH}"
CFLAGS="-O2 -pipe -fomit-frame-pointer"
CXXFLAGS="${CFLAGS}"
diff --git a/wrappers/site/mipsel-linux-gnu b/wrappers/site/mipsel-linux-gnu
index 42f82bf..c96fad1 100644
--- a/wrappers/site/mipsel-linux-gnu
+++ b/wrappers/site/mipsel-linux-gnu
@@ -109,14 +109,14 @@ cv_mono_sizeof_sunpath=108
mono_cv_uscore=${mono_cv_uscore=no}
# general
-ac_cv_have_decl_sys_siglist=${ac_cv_have_decl_sys_siglist=yes}
+ac_cv_have_decl_sys_siglist=${ac_cv_have_decl_sys_siglist=no}
ac_cv_func_malloc_0_nonnull=${ac_cv_func_malloc_0_nonnull=yes}
ac_cv_func_memcmp_working=${ac_cv_func_memcmp_working=yes}
-ac_cv_type_uid_t={ac_cv_type_uid_t=yes}
+ac_cv_type_uid_t=${ac_cv_type_uid_t=yes}
# bash
-bash_cv_under_sys_siglist=${bash_cv_under_sys_siglist=yes}
-bash_cv_sys_siglist=${bash_cv_sys_siglist=yes}
+bash_cv_under_sys_siglist=${bash_cv_under_sys_siglist=no}
+bash_cv_sys_siglist=${bash_cv_sys_siglist=no}
# clamav
clamav_av_func_working_snprintf_long=${clamav_av_func_working_snprintf_long=yes}