Index: build/linux/sysroot_scripts/sysroot-creator.sh |
diff --git a/build/linux/sysroot_scripts/sysroot-creator.sh b/build/linux/sysroot_scripts/sysroot-creator.sh |
index b693ed5bb1def104d68feb8cfdf0046c401320f1..f7580429c490a60db8f44301ff715ff195a170a9 100644 |
--- a/build/linux/sysroot_scripts/sysroot-creator.sh |
+++ b/build/linux/sysroot_scripts/sysroot-creator.sh |
@@ -64,15 +64,18 @@ readonly RELEASE_LIST_GPG="${REPO_BASEDIR}/${RELEASE_FILE_GPG}" |
readonly PACKAGE_FILE_AMD64="main/binary-amd64/Packages.${PACKAGES_EXT}" |
readonly PACKAGE_FILE_I386="main/binary-i386/Packages.${PACKAGES_EXT}" |
readonly PACKAGE_FILE_ARM="main/binary-armhf/Packages.${PACKAGES_EXT}" |
+readonly PACKAGE_FILE_ARM64="main/binary-arm64/Packages.${PACKAGES_EXT}" |
readonly PACKAGE_FILE_MIPS="main/binary-mipsel/Packages.${PACKAGES_EXT}" |
readonly PACKAGE_LIST_AMD64="${REPO_BASEDIR}/${PACKAGE_FILE_AMD64}" |
readonly PACKAGE_LIST_I386="${REPO_BASEDIR}/${PACKAGE_FILE_I386}" |
readonly PACKAGE_LIST_ARM="${REPO_BASEDIR}/${PACKAGE_FILE_ARM}" |
+readonly PACKAGE_LIST_ARM64="${REPO_BASEDIR}/${PACKAGE_FILE_ARM64}" |
readonly PACKAGE_LIST_MIPS="${REPO_BASEDIR}/${PACKAGE_FILE_MIPS}" |
readonly DEBIAN_DEP_LIST_AMD64="packagelist.${DIST}.amd64" |
readonly DEBIAN_DEP_LIST_I386="packagelist.${DIST}.i386" |
readonly DEBIAN_DEP_LIST_ARM="packagelist.${DIST}.arm" |
+readonly DEBIAN_DEP_LIST_ARM64="packagelist.${DIST}.arm64" |
readonly DEBIAN_DEP_LIST_MIPS="packagelist.${DIST}.mipsel" |
###################################################################### |
@@ -129,6 +132,9 @@ SetEnvironmentVariables() { |
if [ -z "$ARCH" ]; then |
echo $1 | grep -qs ARM$ && ARCH=ARM |
fi |
+ if [ -z "$ARCH" ]; then |
+ echo $1 | grep -qs ARM64$ && ARCH=ARM64 |
+ fi |
if [ -z "${ARCH}" ]; then |
echo "ERROR: Unable to determine architecture based on: $1" |
exit 1 |
@@ -224,6 +230,17 @@ GeneratePackageListARM() { |
${DEBIAN_PACKAGES_ARM}" |
} |
+function GeneratePackageListARM64() { |
+ local output_file="$1" |
+ local package_list="${BUILD_DIR}/Packages.${DIST}_arm64.${PACKAGES_EXT}" |
+ local tmp_package_list="${BUILD_DIR}/Packages.${DIST}_arm64" |
+ DownloadOrCopy "${PACKAGE_LIST_ARM64}" "${package_list}" |
+ VerifyPackageListing "${PACKAGE_FILE_ARM64}" "${package_list}" |
+ ExtractPackageBz2 "$package_list" "$tmp_package_list" |
+ GeneratePackageList "$tmp_package_list" "$output_file" "${DEBIAN_PACKAGES} |
+ ${DEBIAN_PACKAGES_ARM64}" |
+} |
+ |
GeneratePackageListMips() { |
local output_file="$1" |
local package_list="${BUILD_DIR}/Packages.${DIST}_mips.${PACKAGES_EXT}" |
@@ -323,6 +340,25 @@ HacksAndPatchesARM() { |
${INSTALL_ROOT}/usr/lib/pkgconfig |
} |
+function HacksAndPatchesARM64() { |
+ Banner "Misc Hacks & Patches" |
+ # these are linker scripts with absolute pathnames in them |
+ # which we rewrite here |
+ lscripts="${INSTALL_ROOT}/usr/lib/aarch64-linux-gnu/libpthread.so \ |
+ ${INSTALL_ROOT}/usr/lib/aarch64-linux-gnu/libc.so" |
+ |
+ # Rewrite linker scripts |
+ sed -i -e 's|/usr/lib/aarch64-linux-gnu/||g' ${lscripts} |
+ sed -i -e 's|/lib/aarch64-linux-gnu/||g' ${lscripts} |
+ |
+ # This is for chrome's ./build/linux/pkg-config-wrapper |
+ # which overwrites PKG_CONFIG_LIBDIR internally |
+ SubBanner "Move pkgconfig files" |
+ mkdir -p ${INSTALL_ROOT}/usr/lib/pkgconfig |
+ mv ${INSTALL_ROOT}/usr/lib/aarch64-linux-gnu/pkgconfig/* \ |
+ ${INSTALL_ROOT}/usr/lib/pkgconfig |
+ |
+} |
HacksAndPatchesMips() { |
Banner "Misc Hacks & Patches" |
@@ -398,7 +434,8 @@ CleanupJailSymlinks() { |
echo "${target}" | grep -qs ^/ || continue |
echo "${link}: ${target}" |
case "${link}" in |
- usr/lib/gcc/*-linux-gnu/4.*/* | usr/lib/gcc/arm-linux-gnueabihf/4.*/*) |
+ usr/lib/gcc/*-linux-gnu/4.*/* | usr/lib/gcc/arm-linux-gnueabihf/4.*/* |\ |
+ usr/lib/gcc/aarch64-linux-gnu/4.*/*) |
# Relativize the symlink. |
ln -snfv "../../../../..${target}" "${link}" |
;; |
@@ -481,6 +518,25 @@ BuildSysrootARM() { |
} |
#@ |
+#@ BuildSysrootARM64 |
+#@ |
+#@ Build everything and package it |
+function BuildSysrootARM64() { |
+ ClearInstallDir |
+ local package_file="$BUILD_DIR/package_with_sha256sum_arm64" |
+ GeneratePackageListARM64 "$package_file" |
+ local files_and_sha256sums="$(cat ${package_file})" |
+ StripChecksumsFromPackageList "$package_file" |
+ VerifyPackageFilesMatch "$package_file" "$DEBIAN_DEP_LIST_ARM64" |
+ APT_REPO=${APR_REPO_ARM64:=$APT_REPO} |
+ InstallIntoSysroot ${files_and_sha256sums} |
+ CleanupJailSymlinks |
+ HacksAndPatchesARM64 |
+ CreateTarBall |
+} |
+ |
+ |
+#@ |
#@ BuildSysrootMips |
#@ |
#@ Build everything and package it |
@@ -543,6 +599,13 @@ UploadSysrootARM() { |
} |
#@ |
+#@ UploadSysrootARM64 <revision> |
+#@ |
+function UploadSysrootARM64() { |
+ UploadSysroot "$@" |
+} |
+ |
+#@ |
#@ UploadSysrootMips <revision> |
#@ |
UploadSysrootMips() { |
@@ -557,6 +620,7 @@ UploadSysrootAll() { |
RunCommand UploadSysrootAmd64 "$@" |
RunCommand UploadSysrootI386 "$@" |
RunCommand UploadSysrootARM "$@" |
+ RunCommand UploadSysrootARM64 "$@" |
RunCommand UploadSysrootMips "$@" |
} |
@@ -669,6 +733,16 @@ UpdatePackageListsARM() { |
} |
#@ |
+#@ UpdatePackageListsARM64 |
+#@ |
+#@ Regenerate the package lists such that they contain an up-to-date |
+#@ list of URLs within the Debian archive. (For arm) |
+function UpdatePackageListsARM64() { |
+ GeneratePackageListARM64 "$DEBIAN_DEP_LIST_ARM64" |
+ StripChecksumsFromPackageList "$DEBIAN_DEP_LIST_ARM64" |
+} |
+ |
+#@ |
#@ UpdatePackageListsMips |
#@ |
#@ Regenerate the package lists such that they contain an up-to-date |
@@ -686,6 +760,7 @@ UpdatePackageListsAll() { |
RunCommand UpdatePackageListsAmd64 |
RunCommand UpdatePackageListsI386 |
RunCommand UpdatePackageListsARM |
+ RunCommand UpdatePackageListsARM64 |
RunCommand UpdatePackageListsMips |
} |