|
Lines 91-96
efetch() {
Link Here
|
| 91 |
return 0 |
91 |
return 0 |
| 92 |
} |
92 |
} |
| 93 |
|
93 |
|
|
|
94 |
darwin_symlink_sdk() { |
| 95 |
# setup MacOSX.sdk symlink for GCC/clang, this should probably be |
| 96 |
# managed using an eselect module in the future |
| 97 |
rm -f "${ROOT}/MacOSX.sdk" |
| 98 |
local SDKPATH=$(xcrun --show-sdk-path --sdk macosx) |
| 99 |
local SDKVERSION=$(xcrun --show-sdk-version --sdk macosx) |
| 100 |
( cd ${ROOT} && ln -s "${SDKPATH}" MacOSX.sdk ) |
| 101 |
einfo "using system sources (${SDKVERSION}) from: ${SDKPATH}" |
| 102 |
} |
| 103 |
|
| 104 |
darwin_include_paths() { |
| 105 |
local SDKPATH="${ROOT}/MacOSX.sdk" |
| 106 |
export C_INCLUDE_PATH="${SDKPATH}/usr/include" |
| 107 |
|
| 108 |
# we require command line tools. This allows stage2 to progress. |
| 109 |
export CPLUS_INCLUDE_PATH="/Library/Developer/CommandLineTools/usr/include/c++/v1:${C_INCLUDE_PATH}" |
| 110 |
} |
| 111 |
|
| 94 |
configure_cflags() { |
112 |
configure_cflags() { |
| 95 |
export CPPFLAGS="-I${ROOT}/tmp/usr/include" |
113 |
export CPPFLAGS="-I${ROOT}/tmp/usr/include" |
| 96 |
|
114 |
|
|
Lines 242-247
configure_toolchain() {
Link Here
|
| 242 |
CC=clang |
260 |
CC=clang |
| 243 |
CXX=clang++ |
261 |
CXX=clang++ |
| 244 |
linker=sys-devel/binutils-apple |
262 |
linker=sys-devel/binutils-apple |
|
|
263 |
if [[ ! -d /usr/include ]]; then |
| 264 |
darwin_symlink_sdk |
| 265 |
darwin_include_paths |
| 266 |
fi |
| 245 |
;; |
267 |
;; |
| 246 |
*"Apple LLVM version "*) |
268 |
*"Apple LLVM version "*) |
| 247 |
vers=${ccvers#*Apple LLVM version } |
269 |
vers=${ccvers#*Apple LLVM version } |
|
Lines 504-516
bootstrap_setup() {
Link Here
|
| 504 |
esac |
526 |
esac |
| 505 |
|
527 |
|
| 506 |
if [[ ${DARWIN_USE_GCC} == 1 ]] ; then |
528 |
if [[ ${DARWIN_USE_GCC} == 1 ]] ; then |
| 507 |
# setup MacOSX.sdk symlink for GCC, this should probably be |
529 |
darwin_symlink_sdk |
| 508 |
# managed using an eselect module in the future |
|
|
| 509 |
rm -f "${ROOT}"/MacOSX.sdk |
| 510 |
local SDKPATH=$(xcrun --show-sdk-path --sdk macosx) |
| 511 |
( cd "${ROOT}" && ln -s "${SDKPATH}" MacOSX.sdk ) |
| 512 |
einfo "using system sources from ${SDKPATH}" |
| 513 |
|
| 514 |
# amend profile, to use gcc one |
530 |
# amend profile, to use gcc one |
| 515 |
profile="${profile}/gcc" |
531 |
profile="${profile}/gcc" |
| 516 |
fi |
532 |
fi |
|
Lines 1332-1337
bootstrap_libressl() {
Link Here
|
| 1332 |
https://ftp.openbsd.org/pub/OpenBSD/LibreSSL |
1348 |
https://ftp.openbsd.org/pub/OpenBSD/LibreSSL |
| 1333 |
} |
1349 |
} |
| 1334 |
|
1350 |
|
|
|
1351 |
bootstrap_libtapi() { |
| 1352 |
# grab the libtapi headers (which are actually compiled headers) |
| 1353 |
# but link with libtapi.dylib from CommaandLineTools |
| 1354 |
|
| 1355 |
local PN PV A S |
| 1356 |
PN=libtapi |
| 1357 |
PV=1000.10.8_1 |
| 1358 |
rev=${CHOST##*darwin} |
| 1359 |
A=${PN}-${PV}.darwin_${rev}.x86_64.tbz2 |
| 1360 |
einfo "Bootstrapping ${A%-*} (link to system dylib)" |
| 1361 |
|
| 1362 |
efetch "http://packages.macports.org/libtapi/${A}" |
| 1363 |
|
| 1364 |
einfo "Unpacking ${A%-*}" |
| 1365 |
S="${PORTAGE_TMPDIR}/${PN}-${PV}" |
| 1366 |
rm -rf "${S}" |
| 1367 |
mkdir -p "${S}" |
| 1368 |
cd "${S}" |
| 1369 |
bzip2 -dc "${DISTDIR}/${A}" | tar -xf - || return 1 |
| 1370 |
cp -r opt/local/include/tapi "${ROOT}"/tmp/usr/include || return 1 |
| 1371 |
|
| 1372 |
# to link with this lib, pass '-client_name ld' in LDFLAGS |
| 1373 |
ln -s /Library/Developer/CommandLineTools/usr/lib/libtapi.dylib "${ROOT}"/tmp/usr/lib |
| 1374 |
} |
| 1375 |
|
| 1335 |
bootstrap_stage_host_gentoo() { |
1376 |
bootstrap_stage_host_gentoo() { |
| 1336 |
if ! is-rap ; then |
1377 |
if ! is-rap ; then |
| 1337 |
einfo "Shortcut only supports prefix-standalone, but we are bootstrapping" |
1378 |
einfo "Shortcut only supports prefix-standalone, but we are bootstrapping" |
|
Lines 1453-1458
bootstrap_stage1() {
Link Here
|
| 1453 |
} > "${ROOT}"/tmp/usr/local/bin/java |
1494 |
} > "${ROOT}"/tmp/usr/local/bin/java |
| 1454 |
cp "${ROOT}"/tmp/usr/local/bin/java{,c} |
1495 |
cp "${ROOT}"/tmp/usr/local/bin/java{,c} |
| 1455 |
chmod 755 "${ROOT}"/tmp/usr/local/bin/java{,c} |
1496 |
chmod 755 "${ROOT}"/tmp/usr/local/bin/java{,c} |
|
|
1497 |
|
| 1498 |
# libtapi.dylib is needed to build binutils-apple in stage2 |
| 1499 |
[[ ${DARWIN_USE_GCC} == 1 ]] \ |
| 1500 |
|| [[ -f "${ROOT}"/tmp/usr/lib/libtapi.dylib ]] \ |
| 1501 |
|| (bootstrap_libtapi) || return 1 |
| 1456 |
;; |
1502 |
;; |
| 1457 |
*-linux*) |
1503 |
*-linux*) |
| 1458 |
if [[ ! -x "${ROOT}"/tmp/usr/bin/gcc ]] \ |
1504 |
if [[ ! -x "${ROOT}"/tmp/usr/bin/gcc ]] \ |
|
Lines 1713-1720
bootstrap_stage2() {
Link Here
|
| 1713 |
$([[ ${CHOST} == *-aix* ]] && echo dev-libs/libiconv ) # bash dependency |
1759 |
$([[ ${CHOST} == *-aix* ]] && echo dev-libs/libiconv ) # bash dependency |
| 1714 |
$([[ ${CHOST} == *-cygwin* ]] && echo dev-libs/libiconv ) # bash dependency |
1760 |
$([[ ${CHOST} == *-cygwin* ]] && echo dev-libs/libiconv ) # bash dependency |
| 1715 |
sys-libs/ncurses |
1761 |
sys-libs/ncurses |
|
|
1762 |
dev-util/pkgconf # needed to build readline |
| 1716 |
sys-libs/readline |
1763 |
sys-libs/readline |
| 1717 |
app-shells/bash |
1764 |
app-shells/bash |
|
|
1765 |
app-misc/pax-utils # needed to build xz-utils |
| 1718 |
app-arch/xz-utils |
1766 |
app-arch/xz-utils |
| 1719 |
sys-apps/sed |
1767 |
sys-apps/sed |
| 1720 |
sys-apps/baselayout-prefix |
1768 |
sys-apps/baselayout-prefix |
|
Lines 1736-1743
bootstrap_stage2() {
Link Here
|
| 1736 |
[[ ${CHOST} == *-solaris* ]] && echo "=dev-libs/libffi-3.3_rc0" \ |
1784 |
[[ ${CHOST} == *-solaris* ]] && echo "=dev-libs/libffi-3.3_rc0" \ |
| 1737 |
>> "${ROOT}"/tmp/etc/portage/package.mask |
1785 |
>> "${ROOT}"/tmp/etc/portage/package.mask |
| 1738 |
|
1786 |
|
| 1739 |
# unlock GCC on Darwin for DARWIN_USE_GCC bootstraps |
1787 |
# unlock Darwin builds for GCC and clang bootstraps |
| 1740 |
if [[ ${DARWIN_USE_GCC} == 1 ]] ; then |
1788 |
if [[ -d "${ROOT}/MacOSX.sdk" ]] ; then |
| 1741 |
rm -f "${ROOT}"/tmp/MacOSX.sdk |
1789 |
rm -f "${ROOT}"/tmp/MacOSX.sdk |
| 1742 |
( cd "${ROOT}"/tmp && ln -s ../MacOSX.sdk ) |
1790 |
( cd "${ROOT}"/tmp && ln -s ../MacOSX.sdk ) |
| 1743 |
fi |
1791 |
fi |
|
Lines 1746-1751
bootstrap_stage2() {
Link Here
|
| 1746 |
# unless we only build the buildtool, bug #603012 |
1794 |
# unless we only build the buildtool, bug #603012 |
| 1747 |
echo "dev-util/cmake -server" >> "${ROOT}"/tmp/etc/portage/package.use |
1795 |
echo "dev-util/cmake -server" >> "${ROOT}"/tmp/etc/portage/package.use |
| 1748 |
|
1796 |
|
|
|
1797 |
# rhash (dep of cmake) configure can't find the openssl/libressl. |
| 1798 |
# ssl use flag allows RHash to "use optimized algorithms" |
| 1799 |
# but RHash will work fine without, so disable during bootstrap. |
| 1800 |
echo "app-crypt/rhash -ssl" >> "${ROOT}"/tmp/etc/portage/package.use |
| 1801 |
|
| 1749 |
emerge_pkgs --nodeps "${pkgs[@]}" || return 1 |
1802 |
emerge_pkgs --nodeps "${pkgs[@]}" || return 1 |
| 1750 |
|
1803 |
|
| 1751 |
# Debian multiarch supported by RAP needs ld to support sysroot. |
1804 |
# Debian multiarch supported by RAP needs ld to support sysroot. |
|
Lines 2836-2842
EOF
Link Here
|
| 2836 |
export CHOST=$(portageq envvar CHOST) |
2889 |
export CHOST=$(portageq envvar CHOST) |
| 2837 |
|
2890 |
|
| 2838 |
# after stage1 and stage2 we should have a bash of our own, which |
2891 |
# after stage1 and stage2 we should have a bash of our own, which |
| 2839 |
# is preferably over the host-provided one, because we know it can |
2892 |
# is preferable over the host-provided one, because we know it can |
| 2840 |
# deal with the bash-constructs we use in stage3 and onwards |
2893 |
# deal with the bash-constructs we use in stage3 and onwards |
| 2841 |
hash -r |
2894 |
hash -r |
| 2842 |
|
2895 |
|