Skip to content

Instantly share code, notes, and snippets.

@pulkomandy
Last active August 29, 2015 13:56
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save pulkomandy/9162826 to your computer and use it in GitHub Desktop.
Save pulkomandy/9162826 to your computer and use it in GitHub Desktop.
Notes on bootstrapping Haiku cross compilation on Haiku
#!/bin/sh
# Step 1: build the cross-tools, using gcc4 as the host compiler.
setarch x86
mkdir generated.arm4
cd generated.arm4
../configure --build-cross-tools arm ../../buildtools/ --use-gcc-pipe -j2
exit
# Step 2: build Haiku bootstrap, using gcc2 as the host compiler (using gcc4 seems to confuse the runtime_loader...)
mkdir generated.arm2
cd generated.arm2
../configure --cross-tools-prefix ../generated.arm4/cross-tools-arm/bin/arm-unknown-haiku- --use-gcc-pipe -j2 --bootstrap ../../haikuporter/haikuporter ../../crossports/ ../../ports/
jam -qj2 -sHAIKU_BOOT_BOARD=beagle @bootstrap-raw
InitScript1 /Donnees/Dev/Haiku/haiku/generated.arm2/objects/haiku/arm/packaging/packages_build/hpkg_-haiku_cross_devel_sysroot_stage1_arm.hpkg/scripts/haiku.package-init-vars
AddTargetVariableToScript1 <unique!target>_target_26
AddTargetVariableToScript1 <unique!target>_target_36
AddTargetVariableToScript1 <unique!target>_target_46
AddTargetVariableToScript1 <unique!target>_target_56
AddTargetVariableToScript1 <unique!target>_target_66
AddTargetVariableToScript1 <unique!target>_target_76
AddTargetVariableToScript1 <unique!target>_target_86
AddTargetVariableToScript1 <unique!target>_target_96
AddVariableToScript1 /Donnees/Dev/Haiku/haiku/generated.arm2/objects/haiku/arm/packaging/packages_build/hpkg_-haiku_cross_devel_sysroot_stage1_arm.hpkg/scripts/haiku.package-init-vars
InitScript1 /Donnees/Dev/Haiku/haiku/generated.arm2/objects/haiku/arm/packaging/packages_build/hpkg_-haiku_cross_devel_sysroot_stage1_arm.hpkg/scripts/haiku.package-make-dirs
CreateContainerMakeDirectoriesScript1 /Donnees/Dev/Haiku/haiku/generated.arm2/objects/haiku/arm/packaging/packages_build/hpkg_-haiku_cross_devel_sysroot_stage1_arm.hpkg/scripts/haiku.package-make-dirs
InitScript1 /Donnees/Dev/Haiku/haiku/generated.arm2/objects/haiku/arm/packaging/packages_build/hpkg_-haiku_cross_devel_sysroot_stage1_arm.hpkg/scripts/haiku.package-copy-files
AppendToContainerCopyFilesScriptSingleFile <hpkg_-haiku_cross_devel_sysroot_stage1_arm.hpkg>haiku.package-copy-files-dummy-develop/lib-kernel.so
AppendToContainerCopyFilesScript <hpkg_-haiku_cross_devel_sysroot_stage1_arm.hpkg>haiku.package-copy-files-dummy-develop/lib
AddDirectoryToContainerCopyFilesScript <hpkg_-haiku_cross_devel_sysroot_stage1_arm.hpkg>develop/headers/config/-/<copy-directory-to-container>/Donnees/Dev/Haiku/haiku/headers/config
AddDirectoryToContainerCopyFilesScript <hpkg_-haiku_cross_devel_sysroot_stage1_arm.hpkg>develop/headers/glibc/-/<copy-directory-to-container>/Donnees/Dev/Haiku/haiku/headers/glibc
AddDirectoryToContainerCopyFilesScript <hpkg_-haiku_cross_devel_sysroot_stage1_arm.hpkg>develop/headers/os/-/<copy-directory-to-container>/Donnees/Dev/Haiku/haiku/headers/os
AddDirectoryToContainerCopyFilesScript <hpkg_-haiku_cross_devel_sysroot_stage1_arm.hpkg>develop/headers/posix/-/<copy-directory-to-container>/Donnees/Dev/Haiku/haiku/headers/posix
AddDirectoryToContainerCopyFilesScript <hpkg_-haiku_cross_devel_sysroot_stage1_arm.hpkg>develop/headers/bsd/-/<copy-directory-to-container>/Donnees/Dev/Haiku/haiku/headers/compatibility/bsd
AddDirectoryToContainerCopyFilesScript <hpkg_-haiku_cross_devel_sysroot_stage1_arm.hpkg>develop/headers/gnu/-/<copy-directory-to-container>/Donnees/Dev/Haiku/haiku/headers/compatibility/gnu
InitScript1 /Donnees/Dev/Haiku/haiku/generated.arm2/objects/haiku/arm/packaging/packages_build/hpkg_-haiku_cross_devel_sysroot_stage1_arm.hpkg/scripts/haiku.package-extract-files
BuildHaikuPackage1 /Donnees/Dev/Haiku/haiku/generated.arm2/objects/haiku/arm/packaging/packages/haiku_cross_devel_sysroot_stage1_arm.hpkg
haiku_cross_devel_sysroot_stage1_arm.hpkg: Removing and re-creating package contents dir ...
haiku_cross_devel_sysroot_stage1_arm.hpkg: Collecting package contents ...
haiku_cross_devel_sysroot_stage1_arm.hpkg: mimeset'ing package contents ...
haiku_cross_devel_sysroot_stage1_arm.hpkg: Creating the package ...
BootstrapRepositoryFetchPackage1 /Donnees/Dev/Haiku/haiku/generated.arm2/objects/haiku/arm/packaging/repositories/HaikuPortsCross-build/packages/haikuporter-0-1-any.hpkg
Checking if any package-infos need to be updated ...
updating package infos of binutils_cross_x86-2.23.2_2013_04_09
recipe for curl_bootstrap-7.26.0 is still broken
updating package infos of gcc_bootstrap-4.8.2_2014_02_27
updating package infos of gcc_cross_x86-4.7.3_2013_07_07
updating package infos of haikuporter-0
Looking for stale package-infos ...
======================================================================
haiku-apps::haikuporter-0
======================================================================
Encountered problems resolving package dependencies:
1: package faked_haikuporter-0-1 requires cmd:arm_unknown_haiku_objcopy, but none of the providers can be installed
*** unable to resolve prerequired ports for haikuporter-0
*** package-infos:
*** /Donnees/Dev/Haiku/haiku/generated.arm2/objects/haiku/arm/packaging/repositories/HaikuPortsCross-build/haiku-apps/haikuporter/work-0/repository/haikuporter-0.PackageInfo
*** repositories:
*** /Donnees/Dev/Haiku/haiku/generated.arm2/objects/haiku/arm/packaging/repositories/HaikuPortsCross-build/packages
***
package="/Donnees/Dev/Haiku/haiku/generated.arm2/objects/haiku/arm/packaging/repositories/HaikuPortsCross-build/packages/haikuporter-0-1-any.hpkg"
if [ -e "$package" ]; then
exit 0
fi
haikuCrossDevelPackage="/Donnees/Dev/Haiku/haiku/generated.arm2/objects/haiku/arm/packaging/packages/haiku_cross_devel_sysroot_stage1_arm.hpkg"
if [ "x$haikuCrossDevelPackage" = "x${haikuCrossDevelPackage#/}" ]; then
haikuCrossDevelPackage="`pwd`/$haikuCrossDevelPackage"
fi
secondaryCrossDevelPackages=
if [ -n ]; then
for secondaryCrossDevelPackage in ; do
if [ "x$secondaryCrossDevelPackage" = "x${secondaryCrossDevelPackage#/}" ]; then
secondaryCrossDevelPackage="`pwd`/$secondaryCrossDevelPackage"
fi
if [ -n "$secondaryCrossDevelPackages" ]; then
secondaryCrossDevelPackages="secondaryCrossDevelPackages,$secondaryCrossDevelPackage"
else
secondaryCrossDevelPackages="--secondary-cross-devel-package=$secondaryCrossDevelPackage"
fi
done
fi
portName=`basename "$package" | sed 's@-.*@@'`
case $portName in
*_devel|*_doc|*_source|*_debuginfo)
portName=`echo $portName | sed 's@_[^_]*$@@'`
;;
*_source_rigged)
portName=`echo $portName | sed 's@_source_rigged$@@'`
;;
esac
cd /Donnees/Dev/Haiku/haiku/generated.arm2/objects/haiku/arm/packaging/repositories/HaikuPortsCross-build
export LIBRARY_PATH=$LIBRARY_PATH:/Donnees/Dev/Haiku/haiku/generated.arm2/objects/haiku_host/lib
if [ -n "$secondaryCrossDevelPackages" ]; then
/Donnees/Dev/Haiku/haiku/generated.arm2/../../haikuporter/haikuporter \
--cross-devel-package "$haikuCrossDevelPackage" \
"$secondaryCrossDevelPackages" $portName
else
/Donnees/Dev/Haiku/haiku/generated.arm2/../../haikuporter/haikuporter \
--cross-devel-package "$haikuCrossDevelPackage" $portName
fi
...failed BootstrapRepositoryFetchPackage1 /Donnees/Dev/Haiku/haiku/generated.arm2/objects/haiku/arm/packaging/repositories/HaikuPortsCross-build/packages/haikuporter-0-1-any.hpkg ...
BUILD FAILURE:
...failed updating 1 target(s)...
...skipped 38 target(s)...
...updated 368 target(s)...
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment