Skip to content

Commit 6250d29

Browse files
committed
Update build configurations and toolchain settings for arm64
Added build configuration for aarch64-unknown-linux-gnu in `.cargo/config.toml` and updated `build-arch.sh` script to ensure a complete make process. Updated `ct-ng-configs/arm64.config` to newer versions for kernel, binutils, glibc, and gcc, enabling new features and properly setting flags for better compatibility and security.
1 parent 2c793b4 commit 6250d29

File tree

4 files changed

+104
-80
lines changed

4 files changed

+104
-80
lines changed

.cargo/config.toml

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
[target.aarch64-unknown-linux-gnu]
2+
linker = "aarch64-unknown-linux-gnu-ld.bfd"
3+
rustflags = [
4+
"-C", "relocation-model=pie"
5+
]

build.assets/build-arch.sh

+9-7
Original file line numberDiff line numberDiff line change
@@ -2,21 +2,21 @@
22

33
set -e
44

5-
export GOLANG_VERSION=go1.21.5
5+
export GOLANG_VERSION=go1.22.5
66

7-
export RUST_VERSION=1.71.1
7+
export RUST_VERSION=1.79.0
88

99
# Switch depending on the architecture which is passed as the script argument
1010
case $1 in
1111
"arm64")
1212
export ARCH="arm64"
1313
export GO_ARCH="arm64"
14-
export SYSROOT="${HOME}/x-tools/aarch64-centos7-linux-gnu/aarch64-centos7-linux-gnu/sysroot"
14+
export SYSROOT="${HOME}/x-tools/aarch64-unknown-linux-gnu/aarch64-unknown-linux-gnu/sysroot"
1515

16-
export PATH="${HOME}/x-tools/aarch64-centos7-linux-gnu/bin:$PATH"
17-
export CC="aarch64-centos7-linux-gnu-cc --sysroot=${SYSROOT} -I${SYSROOT}/include" # Hacky but works
18-
export CXX="aarch64-centos7-linux-gnu-c++ --sysroot=${SYSROOT}"
19-
export LD="aarch64-centos7-linux-gnu-ld --sysroot=${SYSROOT}"
16+
export PATH="${HOME}/x-tools/aarch64-unknown-linux-gnu/bin:$PATH"
17+
export CC="aarch64-unknown-linux-gnu-cc --sysroot=${SYSROOT} -I${SYSROOT}/include" # Hacky but works
18+
export CXX="aarch64-unknown-linux-gnu-c++ --sysroot=${SYSROOT}"
19+
export LD="aarch64-unknown-linux-gnu-ld --sysroot=${SYSROOT}"
2020
export PKG_CONFIG_PATH="${SYSROOT}/lib/pkgconfig"
2121
;;
2222
"arm")
@@ -142,6 +142,8 @@ cd ..
142142
# Build teleport
143143
WEBASSETS_SKIP_BUILD=1 GOOS=linux CGO_ENABLED=1 ARCH=${GO_ARCH} go env
144144
WEBASSETS_SKIP_BUILD=1 GOOS=linux CGO_ENABLED=1 ARCH=${GO_ARCH} make
145+
cd e
146+
WEBASSETS_SKIP_BUILD=1 GOOS=linux CGO_ENABLED=1 ARCH=${GO_ARCH} make
145147

146148
# check
147149
readelf -a build/teleport | grep -w -Eo "GLIBC_2\.[0-9]+(\.[0-9]+)?" | sort -u

build.assets/ct-ng-configs/arm64.config

+84-73
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
#
22
# Automatically generated file; DO NOT EDIT.
3-
# crosstool-NG 1.26.0.34_6d1b6e4 Configuration
3+
# crosstool-NG 1.26.0 Configuration
44
#
55
CT_CONFIGURE_has_static_link=y
66
CT_CONFIGURE_has_cxx11=y
@@ -26,7 +26,7 @@ CT_CONFIGURE_has_sha1sum=y
2626
CT_CONFIGURE_has_sha256sum=y
2727
CT_CONFIGURE_has_sha512sum=y
2828
CT_CONFIGURE_has_install_with_strip_program=y
29-
CT_VERSION="1.26.0.34_6d1b6e4"
29+
CT_VERSION="1.26.0"
3030
CT_VCHECK=""
3131
CT_CONFIG_VERSION_ENV="4"
3232
CT_CONFIG_VERSION_CURRENT="4"
@@ -40,7 +40,7 @@ CT_MODULES=y
4040
#
4141
# crosstool-NG behavior
4242
#
43-
CT_OBSOLETE=y
43+
# CT_OBSOLETE is not set
4444
# CT_EXPERIMENTAL is not set
4545
# CT_DEBUG_CT is not set
4646

@@ -152,7 +152,7 @@ CT_ARCH_ARM_SHOW=y
152152
# Options for arm
153153
#
154154
CT_ARCH_ARM_PKG_KSYM=""
155-
CT_ALL_ARCH_CHOICES="ALPHA ARC ARM AVR BPF C6X LOONGARCH M68K MICROBLAZE MIPS MOXIE MSP430 NIOS2 PARISC POWERPC PRU RISCV S390 SH SPARC X86 XTENSA"
155+
CT_ALL_ARCH_CHOICES="ALPHA ARC ARM AVR BPF C6X LOONGARCH M68K MICROBLAZE MIPS MOXIE MSP430 NIOS2 POWERPC PRU RISCV S390 SH SPARC X86 XTENSA"
156156
CT_ARCH_SUFFIX=""
157157
# CT_OMIT_TARGET_VENDOR is not set
158158

@@ -197,6 +197,7 @@ CT_TARGET_LDFLAGS=""
197197
#
198198
# General toolchain options
199199
#
200+
CT_FORCE_SYSROOT=y
200201
CT_USE_SYSROOT=y
201202
CT_SYSROOT_NAME="sysroot"
202203
CT_SYSROOT_DIR_PREFIX=""
@@ -210,7 +211,7 @@ CT_TOOLCHAIN_BUGURL=""
210211
#
211212
# Tuple completion and aliasing
212213
#
213-
CT_TARGET_VENDOR="centos7"
214+
CT_TARGET_VENDOR="unknown"
214215
CT_TARGET_ALIAS_SED_EXPR=""
215216
CT_TARGET_ALIAS=""
216217

@@ -256,11 +257,9 @@ CT_LINUX_PKG_NAME="linux"
256257
CT_LINUX_SRC_RELEASE=y
257258
# CT_LINUX_SRC_DEVEL is not set
258259
CT_LINUX_PATCH_ORDER="global"
259-
# CT_LINUX_V_6_6 is not set
260-
# CT_LINUX_V_6_5 is not set
261-
# CT_LINUX_V_6_4 is not set
260+
CT_LINUX_V_6_4=y
262261
# CT_LINUX_V_6_3 is not set
263-
CT_LINUX_V_6_2=y
262+
# CT_LINUX_V_6_2 is not set
264263
# CT_LINUX_V_6_1 is not set
265264
# CT_LINUX_V_6_0 is not set
266265
# CT_LINUX_V_5_19 is not set
@@ -276,7 +275,6 @@ CT_LINUX_V_6_2=y
276275
# CT_LINUX_V_5_9 is not set
277276
# CT_LINUX_V_5_8 is not set
278277
# CT_LINUX_V_5_7 is not set
279-
# CT_LINUX_V_5_5 is not set
280278
# CT_LINUX_V_5_4 is not set
281279
# CT_LINUX_V_5_3 is not set
282280
# CT_LINUX_V_5_2 is not set
@@ -296,12 +294,11 @@ CT_LINUX_V_6_2=y
296294
# CT_LINUX_V_4_9 is not set
297295
# CT_LINUX_V_4_4 is not set
298296
# CT_LINUX_V_4_1 is not set
299-
# CT_LINUX_V_3_18 is not set
300297
# CT_LINUX_V_3_16 is not set
301298
# CT_LINUX_V_3_13 is not set
302299
# CT_LINUX_V_3_12 is not set
303300
# CT_LINUX_V_3_10 is not set
304-
CT_LINUX_VERSION="6.2.12"
301+
CT_LINUX_VERSION="6.4"
305302
CT_LINUX_MIRRORS="$(CT_Mirrors kernel.org linux ${CT_LINUX_VERSION})"
306303
CT_LINUX_ARCHIVE_FILENAME="@{pkg_name}-@{version}"
307304
CT_LINUX_ARCHIVE_DIRNAME="@{pkg_name}-@{version}"
@@ -322,6 +319,7 @@ CT_LINUX_3_7_or_later=y
322319
CT_LINUX_REQUIRE_3_7_or_later=y
323320
CT_LINUX_later_than_3_2=y
324321
CT_LINUX_3_2_or_later=y
322+
CT_LINUX_REQUIRE_3_2_or_later=y
325323
CT_KERNEL_DEP_RSYNC=y
326324
CT_KERNEL_LINUX_VERBOSITY_0=y
327325
# CT_KERNEL_LINUX_VERBOSITY_1 is not set
@@ -356,21 +354,31 @@ CT_BINUTILS_PKG_NAME="binutils"
356354
CT_BINUTILS_SRC_RELEASE=y
357355
# CT_BINUTILS_SRC_DEVEL is not set
358356
CT_BINUTILS_PATCH_ORDER="global"
359-
CT_BINUTILS_V_2_29=y
357+
CT_BINUTILS_V_2_40=y
358+
# CT_BINUTILS_V_2_39 is not set
359+
# CT_BINUTILS_V_2_38 is not set
360+
# CT_BINUTILS_V_2_37 is not set
361+
# CT_BINUTILS_V_2_36 is not set
362+
# CT_BINUTILS_V_2_35 is not set
363+
# CT_BINUTILS_V_2_34 is not set
364+
# CT_BINUTILS_V_2_33 is not set
365+
# CT_BINUTILS_V_2_32 is not set
366+
# CT_BINUTILS_V_2_31 is not set
367+
# CT_BINUTILS_V_2_30 is not set
368+
# CT_BINUTILS_V_2_29 is not set
360369
# CT_BINUTILS_V_2_28 is not set
361370
# CT_BINUTILS_V_2_27 is not set
362371
# CT_BINUTILS_V_2_26 is not set
363-
CT_BINUTILS_VERSION="2.29.1"
372+
CT_BINUTILS_VERSION="2.40"
364373
CT_BINUTILS_MIRRORS="$(CT_Mirrors GNU binutils) $(CT_Mirrors sourceware binutils/releases)"
365374
CT_BINUTILS_ARCHIVE_FILENAME="@{pkg_name}-@{version}"
366375
CT_BINUTILS_ARCHIVE_DIRNAME="@{pkg_name}-@{version}"
367376
CT_BINUTILS_ARCHIVE_FORMATS=".tar.xz .tar.bz2 .tar.gz"
368377
CT_BINUTILS_SIGNATURE_FORMAT="packed/.sig"
369-
CT_BINUTILS_2_39_or_older=y
370-
CT_BINUTILS_older_than_2_39=y
371-
CT_BINUTILS_2_30_or_older=y
372-
CT_BINUTILS_older_than_2_30=y
373-
CT_BINUTILS_REQUIRE_older_than_2_30=y
378+
CT_BINUTILS_later_than_2_39=y
379+
CT_BINUTILS_2_39_or_later=y
380+
CT_BINUTILS_later_than_2_30=y
381+
CT_BINUTILS_2_30_or_later=y
374382
CT_BINUTILS_later_than_2_27=y
375383
CT_BINUTILS_2_27_or_later=y
376384
CT_BINUTILS_later_than_2_26=y
@@ -388,7 +396,7 @@ CT_BINUTILS_GOLD_INSTALLED=y
388396
CT_BINUTILS_GOLD_THREADS=y
389397
CT_BINUTILS_LINKER_BOTH=y
390398
CT_BINUTILS_LINKERS_LIST="ld,gold"
391-
CT_BINUTILS_LD_WRAPPER=y
399+
# CT_BINUTILS_LD_WRAPPER is not set
392400
CT_BINUTILS_LINKER_DEFAULT="bfd"
393401
CT_BINUTILS_PLUGINS=y
394402
CT_BINUTILS_RELRO=m
@@ -419,7 +427,7 @@ CT_GLIBC_PKG_NAME="glibc"
419427
CT_GLIBC_SRC_RELEASE=y
420428
# CT_GLIBC_SRC_DEVEL is not set
421429
CT_GLIBC_PATCH_ORDER="global"
422-
# CT_GLIBC_V_2_38 is not set
430+
CT_GLIBC_V_2_38=y
423431
# CT_GLIBC_V_2_37 is not set
424432
# CT_GLIBC_V_2_36 is not set
425433
# CT_GLIBC_V_2_35 is not set
@@ -436,74 +444,77 @@ CT_GLIBC_PATCH_ORDER="global"
436444
# CT_GLIBC_V_2_24 is not set
437445
# CT_GLIBC_V_2_23 is not set
438446
# CT_GLIBC_V_2_19 is not set
439-
CT_GLIBC_V_2_17=y
440-
CT_GLIBC_VERSION="2.17"
447+
# CT_GLIBC_V_2_17 is not set
448+
CT_GLIBC_VERSION="2.38"
441449
CT_GLIBC_MIRRORS="$(CT_Mirrors GNU glibc)"
442450
CT_GLIBC_ARCHIVE_FILENAME="@{pkg_name}-@{version}"
443451
CT_GLIBC_ARCHIVE_DIRNAME="@{pkg_name}-@{version}"
444452
CT_GLIBC_ARCHIVE_FORMATS=".tar.xz .tar.bz2 .tar.gz"
445453
CT_GLIBC_SIGNATURE_FORMAT="packed/.sig"
454+
CT_GLIBC_2_38_or_later=y
446455
CT_GLIBC_2_38_or_older=y
447-
CT_GLIBC_older_than_2_38=y
448-
CT_GLIBC_2_37_or_older=y
449-
CT_GLIBC_older_than_2_37=y
450-
CT_GLIBC_2_36_or_older=y
451-
CT_GLIBC_older_than_2_36=y
452-
CT_GLIBC_2_34_or_older=y
453-
CT_GLIBC_older_than_2_34=y
454-
CT_GLIBC_2_32_or_older=y
455-
CT_GLIBC_older_than_2_32=y
456-
CT_GLIBC_2_31_or_older=y
457-
CT_GLIBC_older_than_2_31=y
458-
CT_GLIBC_2_30_or_older=y
459-
CT_GLIBC_older_than_2_30=y
460-
CT_GLIBC_2_29_or_older=y
461-
CT_GLIBC_older_than_2_29=y
462-
CT_GLIBC_2_28_or_older=y
463-
CT_GLIBC_older_than_2_28=y
464-
CT_GLIBC_2_27_or_older=y
465-
CT_GLIBC_older_than_2_27=y
466-
CT_GLIBC_2_26_or_older=y
467-
CT_GLIBC_older_than_2_26=y
468-
CT_GLIBC_2_25_or_older=y
469-
CT_GLIBC_older_than_2_25=y
470-
CT_GLIBC_2_24_or_older=y
471-
CT_GLIBC_older_than_2_24=y
472-
CT_GLIBC_2_23_or_older=y
473-
CT_GLIBC_older_than_2_23=y
474-
CT_GLIBC_2_20_or_older=y
475-
CT_GLIBC_older_than_2_20=y
456+
CT_GLIBC_later_than_2_37=y
457+
CT_GLIBC_2_37_or_later=y
458+
CT_GLIBC_later_than_2_36=y
459+
CT_GLIBC_2_36_or_later=y
460+
CT_GLIBC_later_than_2_34=y
461+
CT_GLIBC_2_34_or_later=y
462+
CT_GLIBC_later_than_2_32=y
463+
CT_GLIBC_2_32_or_later=y
464+
CT_GLIBC_later_than_2_31=y
465+
CT_GLIBC_2_31_or_later=y
466+
CT_GLIBC_later_than_2_30=y
467+
CT_GLIBC_2_30_or_later=y
468+
CT_GLIBC_later_than_2_29=y
469+
CT_GLIBC_2_29_or_later=y
470+
CT_GLIBC_later_than_2_28=y
471+
CT_GLIBC_2_28_or_later=y
472+
CT_GLIBC_later_than_2_27=y
473+
CT_GLIBC_2_27_or_later=y
474+
CT_GLIBC_later_than_2_26=y
475+
CT_GLIBC_2_26_or_later=y
476+
CT_GLIBC_later_than_2_25=y
477+
CT_GLIBC_2_25_or_later=y
478+
CT_GLIBC_later_than_2_24=y
479+
CT_GLIBC_2_24_or_later=y
480+
CT_GLIBC_later_than_2_23=y
481+
CT_GLIBC_2_23_or_later=y
482+
CT_GLIBC_later_than_2_20=y
483+
CT_GLIBC_2_20_or_later=y
484+
CT_GLIBC_later_than_2_17=y
476485
CT_GLIBC_2_17_or_later=y
477-
CT_GLIBC_2_17_or_older=y
478486
CT_GLIBC_later_than_2_14=y
479487
CT_GLIBC_2_14_or_later=y
480488
CT_GLIBC_DEP_KERNEL_HEADERS_VERSION=y
481489
CT_GLIBC_DEP_BINUTILS=y
482490
CT_GLIBC_DEP_GCC=y
483491
CT_GLIBC_DEP_PYTHON=y
484-
CT_GLIBC_SPARC_ALLOW_V7=y
485492
CT_THREADS="nptl"
486-
CT_GLIBC_HAS_NPTL_ADDON=y
487-
CT_GLIBC_HAS_PORTS_ADDON=y
493+
CT_GLIBC_BUILD_SSP=y
488494
CT_GLIBC_HAS_LIBIDN_ADDON=y
489-
CT_GLIBC_USE_PORTS_ADDON=y
490-
CT_GLIBC_USE_NPTL_ADDON=y
491495
# CT_GLIBC_USE_LIBIDN_ADDON is not set
492-
CT_GLIBC_HAS_OBSOLETE_RPC=y
496+
CT_GLIBC_NO_SPARC_V8=y
497+
CT_GLIBC_HAS_OBSOLETE_LIBCRYPT=y
493498
CT_GLIBC_EXTRA_CONFIG_ARRAY=""
494499
CT_GLIBC_CONFIGPARMS=""
495500
CT_GLIBC_ENABLE_DEBUG=y
496-
CT_GLIBC_EXTRA_CFLAGS="-Wno-missing-attributes -Wno-array-bounds -Wno-array-parameter -Wno-stringop-overflow -Wno-maybe-uninitialized"
497-
CT_GLIBC_ENABLE_OBSOLETE_RPC=y
501+
CT_GLIBC_EXTRA_CFLAGS=""
502+
# CT_GLIBC_ENABLE_OBSOLETE_LIBCRYPT is not set
498503
# CT_GLIBC_DISABLE_VERSIONING is not set
499504
CT_GLIBC_OLDEST_ABI=""
500505
CT_GLIBC_FORCE_UNWIND=y
501506
# CT_GLIBC_LOCALES is not set
502507
# CT_GLIBC_KERNEL_VERSION_NONE is not set
503508
CT_GLIBC_KERNEL_VERSION_AS_HEADERS=y
504509
# CT_GLIBC_KERNEL_VERSION_CHOSEN is not set
505-
CT_GLIBC_MIN_KERNEL="6.2.12"
506-
CT_GLIBC_ENABLE_COMMON_FLAG=y
510+
CT_GLIBC_MIN_KERNEL="6.4"
511+
CT_GLIBC_SSP_DEFAULT=y
512+
# CT_GLIBC_SSP_NO is not set
513+
# CT_GLIBC_SSP_YES is not set
514+
# CT_GLIBC_SSP_ALL is not set
515+
# CT_GLIBC_SSP_STRONG is not set
516+
CT_GLIBC_ENABLE_WERROR=y
517+
# CT_GLIBC_ENABLE_COMMON_FLAG is not set
507518
CT_ALL_LIBC_CHOICES="AVR_LIBC GLIBC MINGW_W64 MOXIEBOX MUSL NEWLIB NONE PICOLIBC UCLIBC_NG"
508519
CT_LIBC_SUPPORT_THREADS_ANY=y
509520
CT_LIBC_SUPPORT_THREADS_NATIVE=y
@@ -553,8 +564,6 @@ CT_GCC_V_13=y
553564
# CT_GCC_V_8 is not set
554565
# CT_GCC_V_7 is not set
555566
# CT_GCC_V_6 is not set
556-
# CT_GCC_V_5 is not set
557-
# CT_GCC_V_4_9 is not set
558567
CT_GCC_VERSION="13.2.0"
559568
CT_GCC_MIRRORS="$(CT_Mirrors GNU gcc/gcc-${CT_GCC_VERSION}) $(CT_Mirrors sourceware gcc/releases/gcc-${CT_GCC_VERSION})"
560569
CT_GCC_ARCHIVE_FILENAME="@{pkg_name}-@{version}"
@@ -577,10 +586,13 @@ CT_GCC_later_than_7=y
577586
CT_GCC_7_or_later=y
578587
CT_GCC_later_than_6=y
579588
CT_GCC_6_or_later=y
589+
CT_GCC_REQUIRE_6_or_later=y
580590
CT_GCC_later_than_5=y
581591
CT_GCC_5_or_later=y
592+
CT_GCC_REQUIRE_5_or_later=y
582593
CT_GCC_later_than_4_9=y
583594
CT_GCC_4_9_or_later=y
595+
CT_GCC_REQUIRE_4_9_or_later=y
584596
CT_CC_GCC_ENABLE_PLUGINS=y
585597
CT_CC_GCC_GOLD=y
586598
CT_CC_GCC_HAS_LIBMPX=y
@@ -601,11 +613,11 @@ CT_CC_GCC_LTO_ZSTD=m
601613
#
602614
# Settings for libraries running on target
603615
#
604-
# CT_CC_GCC_ENABLE_DEFAULT_PIE is not set
616+
CT_CC_GCC_ENABLE_DEFAULT_PIE=y
605617
CT_CC_GCC_ENABLE_TARGET_OPTSPACE=y
606-
# CT_CC_GCC_LIBMUDFLAP is not set
607-
# CT_CC_GCC_LIBGOMP is not set
608-
# CT_CC_GCC_LIBSSP is not set
618+
CT_CC_GCC_LIBMUDFLAP=y
619+
CT_CC_GCC_LIBGOMP=y
620+
CT_CC_GCC_LIBSSP=y
609621
# CT_CC_GCC_LIBQUADMATH is not set
610622
# CT_CC_GCC_LIBSANITIZER is not set
611623
CT_CC_GCC_LIBSTDCXX_VERBOSE=m
@@ -618,7 +630,7 @@ CT_CC_GCC_TM_CLONE_REGISTRY=m
618630
# CT_CC_GCC_DISABLE_PCH is not set
619631
CT_CC_GCC_SJLJ_EXCEPTIONS=m
620632
CT_CC_GCC_LDBL_128=m
621-
# CT_CC_GCC_BUILD_ID is not set
633+
CT_CC_GCC_BUILD_ID=y
622634
CT_CC_GCC_LNK_HASH_STYLE_DEFAULT=y
623635
# CT_CC_GCC_LNK_HASH_STYLE_SYSV is not set
624636
# CT_CC_GCC_LNK_HASH_STYLE_GNU is not set
@@ -765,9 +777,8 @@ CT_MPC_PKG_NAME="mpc"
765777
CT_MPC_SRC_RELEASE=y
766778
# CT_MPC_SRC_DEVEL is not set
767779
CT_MPC_PATCH_ORDER="global"
768-
CT_MPC_V_1_3=y
769-
# CT_MPC_V_1_2 is not set
770-
CT_MPC_VERSION="1.3.1"
780+
CT_MPC_V_1_2=y
781+
CT_MPC_VERSION="1.2.1"
771782
CT_MPC_MIRRORS="https://www.multiprecision.org/downloads $(CT_Mirrors GNU mpc)"
772783
CT_MPC_ARCHIVE_FILENAME="@{pkg_name}-@{version}"
773784
CT_MPC_ARCHIVE_DIRNAME="@{pkg_name}-@{version}"
+6
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,8 @@
11
[target.arm-unknown-linux-gnueabihf]
22
linker = "arm-linux-gnueabihf-gcc"
3+
4+
[target.aarch64-unknown-linux-gnu]
5+
linker = "aarch64-unknown-linux-gnu-ld"
6+
rustflags = [
7+
"-C", "link-arg=--sysroot=/home/ubuntu/x-tools/aarch64-unknown-linux-gnu/aarch64-unknown-linux-gnu/sysroot",
8+
]

0 commit comments

Comments
 (0)