tc12_aarch4 (RasPiOS aa4ch64) Kernel 5.4.42-v8 aarch64 on a rpi4B+ 4GB

tce-load -i compiletc perl5 ncursesw-dev bash mpc-dev udev-lib-dev texinfo coreutils glibc_apps rsync gettext python3.6

***STD Build Flags
export CFLAGS="-march=armv8-a+crc -mtune=cortex-a53 -Os -pipe"
export CXXFLAGS="-march=armv8-a+crc -mtune=cortex-a53 -Os -pipe -fno-exceptions -fno-rtti"

export TC=/mnt/tc [***]

sudo mkdir $TC
sudo mount /dev/sdc1 $TC [***]

sudo mkdir $TC/tools [***] 
sudo chown tc:staff $TC/tools [***]

sudo ln -s $TC/tools / [***]

sudo mkdir $TC/sources
sudo chown tc:staff $TC/sources

cat > ~/.bash_profile << "EOF"
exec env -i HOME=$HOME TERM=$TERM PS1='\u:\w\$ ' /bin/bash
EOF

cat > ~/.bashrc << "EOF"
set +h
umask 022
TC=/mnt/tc/root64
LC_ALL=POSIX
TC_TGT=aarch64-tc-linux-gnu
PATH=/tools/bin:/usr/local/bin:/bin:/usr/bin
MAKEFLAGS='-j 4'
export TC LC_ALL TC_TGT MAKEFLAGS PATH
EOF

source ~/.bash_profile

----------

cd binutils-2.34

mkdir build
cd build

../configure --prefix=/tools --with-sysroot=$TC --with-lib-path=/tools/lib --target=$TC_TGT --disable-nls --disable-werror

time make -j4 [3m13.090s]

mkdir /tools/lib
ln -s lib /tools/lib64

make install


cd gcc-10.1.0

tar -xf ../mpfr-4.1.0.tar.xz
mv mpfr-4.1.0 mpfr
tar -xf ../gmp-6.2.0.tar.xz
mv gmp-6.2.0 gmp
tar -xf ../mpc-1.1.0.tar.gz
mv mpc-1.1.0 mpc

for file in gcc/config/linux.h gcc/config/i386/linux.h gcc/config/i386/linux64.h gcc/config/aarch64/aarch64-linux.h
do
  cp $file $file.orig
  sed -e 's@/lib\(64\)\?\(32\)\?/ld@/tools&@g' -e 's@/usr@/tools@g' $file.orig > $file
  echo '
#undef STANDARD_STARTFILE_PREFIX_1
#undef STANDARD_STARTFILE_PREFIX_2
#define STANDARD_STARTFILE_PREFIX_1 "/tools/lib/"
#define STANDARD_STARTFILE_PREFIX_2 ""' >> $file
  touch $file.orig
done

sed -e '/m64=/s/lib64/lib/' -i.orig gcc/config/aarch64/t-aarch64-linux

mkdir build
cd build

../configure --target=$TC_TGT --prefix=/tools --with-glibc-version=2.11 --with-sysroot=$TC --with-newlib \
--without-headers --with-local-prefix=/tools --with-native-system-header-dir=/tools/include --disable-nls --disable-shared --disable-multilib \
--disable-decimal-float --disable-threads --disable-libatomic --disable-libgomp --disable-libquadmath --disable-libssp --disable-libvtv \
--disable-libstdcxx --enable-languages=c,c++

time make -j4 [27m]
make install


cd linux-5.4

make mrproper

make INSTALL_HDR_PATH=dest headers_install
cp -r dest/include/* /tools/include

*/

cd glibc-2.31

edit manual/libc.tcexinfo
remove @documentencoding UTF-8

mkdir build
cd build

../configure --prefix=/tools --host=$TC_TGT --build=$(../scripts/config.guess) --enable-kernel=5.4.42 --with-headers=/tools/include

time make -j4 [11m45.621s]
make install

echo 'int main(){}' > dummy.c
$TC_TGT-gcc dummy.c
readelf -l a.out | grep ': /tools'

[Requesting program interpreter: /tools/lib/ld-linux-aarch64.so.1]

rm dummy.c a.out


******needed to edit /tools/include/gnu/stubs.h to remove calls for stubs_lp64.h

cd gcc-10.1.0 (libstdc++)

mkdir build
cd build

../libstdc++-v3/configure --host=$TC_TGT --prefix=/tools --disable-multilib --disable-nls --disable-libstdcxx-threads \
--disable-libstdcxx-pch --with-gxx-include-dir=/tools/$TC_TGT/include/c++/10.1.0

time make -j4 [1m12.521s]
make install


----- Stage 2 -----

cd binutils-2.34

mkdir build
cd build

CC=$TC_TGT-gcc AR=$TC_TGT-ar RANLIB=$TC_TGT-ranlib ../configure --prefix=/tools --disable-nls --disable-werror --with-lib-path=/tools/lib --with-sysroot

time make -j4 [3m47.032s]
make install

make -C ld clean
make -C ld LIB_PATH=/usr/lib:/lib
cp ld/ld-new /tools/bin


cd gcc-10.1.0

cat gcc/limitx.h gcc/glimits.h gcc/limity.h > `dirname $($TC_TGT-gcc -print-libgcc-file-name)`/include-fixed/limits.h

for file in gcc/config/linux.h gcc/config/i386/linux.h gcc/config/i386/linux64.h gcc/config/aarch64/aarch64-linux.h
do
  cp $file $file.orig
  sed -e 's@/lib\(64\)\?\(32\)\?/ld@/tools&@g' -e 's@/usr@/tools@g' $file.orig > $file
  echo '
#undef STANDARD_STARTFILE_PREFIX_1
#undef STANDARD_STARTFILE_PREFIX_2
#define STANDARD_STARTFILE_PREFIX_1 "/tools/lib/"
#define STANDARD_STARTFILE_PREFIX_2 ""' >> $file
  touch $file.orig
done

sed -e '/m64=/s/lib64/lib/' -i.orig gcc/config/aarch64/t-aarch64-linux

tar -xf ../mpfr-4.1.0.tar.xz
mv mpfr-4.1.0 mpfr
tar -xf ../gmp-6.2.0.tar.xz
mv gmp-6.2.0 gmp
tar -xf ../mpc-1.1.0.tar.gz
mv mpc-1.1.0 mpc

mkdir build
cd build


CC=$TC_TGT-gcc CXX=$TC_TGT-g++ AR=$TC_TGT-ar RANLIB=$TC_TGT-ranlib ../configure --prefix=/tools --with-local-prefix=/tools \
--with-native-system-header-dir=/tools/include --enable-languages=c,c++ --disable-libstdcxx-pch --disable-multilib --disable-bootstrap \
--disable-libgomp --enable-fix-cortex-a53-843419

time make -j4 [46m50.337s]
make install

ln -s gcc /tools/bin/cc

echo 'int main(){}' > dummy.c
cc dummy.c
readelf -l a.out | grep ': /tools'

      [Requesting program interpreter: /tools/lib/ld-linux-aarch64.so.1]

rm dummy.c a.out


cd tcl8.6.10/unix

./configure --prefix=/tools

time make -j4 [4m31.751s]
make install

chmod -v u+w /tools/lib/libtcl8.6.so
make install-private-headers
ln -sv tclsh8.6 /tools/bin/tclsh


cd expect5.45.4

cp -v configure{,.orig}
sed 's:/usr/local/bin:/bin:' configure.orig > configure

Update tclconfig/config.guess and tclconfig/config.sub  (Can get from Binutils)


./configure --prefix=/tools       \
            --with-tcl=/tools/lib \
            --with-tclinclude=/tools/include

time make -j4 [0m6.165s]
make SCRIPTS="" install


cd dejagnu-1.6.2

./configure --prefix=/tools

make install


cd m4-1.4.18

sed -i 's/IO_ftrylockfile/IO_EOF_SEEN/' lib/*.c

#*/  Just for annoying nano code coloring

echo "#define _IO_IN_BACKUP 0x100" >> lib/stdio-impl.h

./configure --prefix=/tools

time make [0m26.109s]
make install


cd ncurses-6.2

sed -i s/mawk// configure

./configure --prefix=/tools --with-shared --without-debug --without-ada --enable-widec --enable-overwrite

time make -j4 [1m24.883s]
make install
ln -s libncursesw.so /tools/lib/libncurses.so

cd bash-5.0

./configure --prefix=/tools --without-bash-malloc

make [0m48.968s]
make install

ln -s bash /tools/bin/sh


cd bison-3.5.2

./configure --prefix=/tools

time make -j4 [0m22.454s]
make install


cd bzip2-1.0.8

make -f Makefile-libbz2_so
make clean

time make -j4  [0m6.560s]
make PREFIX=/tools install

cp -v bzip2-shared /tools/bin/bzip2
cp -av libbz2.so* /tools/lib
ln -sv libbz2.so.1.0 /tools/lib/libbz2.so


cd coreutils-8.31

./configure --prefix=/tools --enable-install-program=hostname

time make -j4 [0m13.175s]
make install


cd diffutils-3.7

./configure --prefix=/tools

make [0m19.979s]
make install


cd file-5.38

./configure --prefix=/tools

time make -j4 [0m9.477s]
make install


cd findutils-4.7.0

./configure --prefix=/tools

time make -j4 [0m27.083s]
make install


cd gawk-5.0.1

./configure --prefix=/tools

time make -j4 [0m37.821s]
make install


cd gettext-0.20.1

./configure --disable-shared

time make -j4 [6m56.748s]

cp gettext-tools/src/msgfmt /tools/bin
cp gettext-tools/src/msgmerge /tools/bin
cp gettext-tools/src/xgettext /tools/bin


cd grep-3.4

./configure --prefix=/tools

time make -j4 [0m20.515s]
make install


cd gzip-1.10

./configure --prefix=/tools

time make -j4 0m6.598s[]
make install


cd make-4.3

??????sed -i '211,217 d; 219,229 d; 232 d' glob/glob.c

./configure --prefix=/tools --without-guile

time make -j4 [0m9.071s]
make install


cd patch-2.7.6

./configure --prefix=/tools

time make -j4 [0m11.573s]
make install


cd perl-5.32.0

sh Configure -des -Dprefix=/tools -Dlibs=-lm -Uloclibpth -Ulocincpth

time make []

cp perl cpan/podlators/scripts/pod2man /tools/bin
mkdir -p /tools/lib/perl5/5.32.0
cp -R lib/* /tools/lib/perl5/5.320.0

#*/  Just for annoying nano code coloring

cd Python-3.8.1 [needed for glibc]

sed -i '/def add_multiarch_paths/a \        return' setup.py

./configure --prefix=/tools --without-ensurepip

time make -j4 [3m39.341s]
make install


cd sed-4.8

./configure --prefix=/tools

time make -j4 [0m15.685s]
make install


cd tar-1.32

./configure --prefix=/tools

time make -j4 [0m33.026s]
make install


cd texinfo-6.7

./configure --prefix=/tools

time make -j4 [0m24.227s]
make install


cd xz-5.2.4

./configure --prefix=/tools

time make -j4 [0m27.237s]
make install

----------

sudo chown -R root:root $TC/tools

sudo mkdir -p $TC/dev
sudo mkdir -p $TC/proc
sudo mkdir -p $TC/sys
sudo mkdir -p $TC/run

sudo mknod -m 600 $TC/dev/console c 5 1
sudo mknod -m 666 $TC/dev/null c 1 3

sudo mount --bind /dev $TC/dev [***]

sudo mount -t devpts devpts $TC/dev/pts -o gid=5,mode=620 [***]
sudo mount -t proc proc $TC/proc [***]
sudo mount -t sysfs sysfs $TC/sys [***]
sudo mount -t tmpfs tmpfs $TC/run [***]

sudo chroot "$TC" /tools/bin/env -i HOME=/root TERM="$TERM" PS1='\u:\w\$ ' \
PATH=/bin:/usr/bin:/sbin:/usr/sbin:/tools/bin /tools/bin/bash --login +h

----------

mkdir -pv /{bin,boot,etc/{opt,sysconfig},home,lib/firmware,mnt,opt}
mkdir -pv /{media/{floppy,cdrom},sbin,srv,var}
install -dv -m 0750 /root
install -dv -m 1777 /tmp /var/tmp
mkdir -pv /usr/{,local/}{bin,include,lib,sbin,src}
mkdir -pv /usr/{,local/}share/{color,dict,doc,info,locale,man}
mkdir -v  /usr/{,local/}share/{misc,terminfo,zoneinfo}
mkdir -v  /usr/libexec
mkdir -pv /usr/{,local/}share/man/man{1..8}

mkdir -v /var/{log,mail,spool}
ln -sv /run /var/run
ln -sv /run/lock /var/lock
mkdir -pv /var/{opt,cache,lib/{color,misc,locate},local}

ln -sv /tools/bin/{bash,cat,dd,echo,ln,pwd,rm,stty} /bin
ln -sv /tools/bin/{env,install,perl} /usr/bin
ln -sv /tools/lib/libgcc_s.so{,.1} /usr/lib
ln -sv /tools/lib/libstdc++.{a,so{,.6}} /usr/lib

install -vdm755 /usr/lib/pkgconfig

ln -sv bash /bin/sh

ln -sv /proc/self/mounts /etc/mtab

[copy tc /etc/passwd and /etc/group files to $TC/etc]

exec /tools/bin/bash --login +h

touch /var/log/{btmp,lastlog,faillog,wtmp}

chmod -v 664  /var/log/lastlog
chmod -v 600  /var/log/btmp

----------

cd linux-5.4

make mrproper

make headers
find usr/include -name '.*' -delete
rm usr/include/Makefile
cp -rv usr/include/* /usr/include

#*/  Just for annoying nano code coloring

cd glibc-2.31

patch -Np1 -i ../glibc-2.31-fhs-1.patch

### not for aarch64
####sed -i '/asm.socket.h/a# include <linux/sockios.h>' sysdeps/unix/sysv/linux/bits/socket.h
####ln -sfv ../lib/ld-linux-x86-64.so.2 /lib64

mkdir build
cd build

echo "CFLAGS += -march=armv8-a+crc -mtune=cortex-a53 -Os -pipe" > configparms

CC="gcc -ffile-prefix-map=/tools=/usr" ../configure --prefix=/usr --disable-werror --libexecdir=/usr/lib/glibc --enable-kernel=5.4.42 \
--enable-stack-protector=strong --with-headers=/usr/include libc_cv_slibdir=/lib --enable-obsolete-rpc

find . -name config.make -type f -exec sed -i 's/-g -O2//g' {} \;
find . -name config.status -type f -exec sed -i 's/-g -O2//g' {} \;

make [8m57.738s]

touch /etc/ld.so.conf

sed '/test-installation/s@$(PERL)@echo not running@' -i ../Makefile

make install [install install_root=/base/glibc]

cp ../nscd/nscd.conf /etc/nscd.conf
mkdir -p /var/cache/nscd

make localedata/install-locales [10m8.898s]

[copy tc /etc/nsswitch.conf and /etc/ld.so.conf files to $TC/etc]


---------- Adjusting the Toolchain ---------------

mv -v /tools/bin/{ld,ld-old}
mv -v /tools/aarch64-unknown-linux-gnu/bin/{ld,ld-old}
mv -v /tools/bin/{ld-new,ld}
ln -sv /tools/bin/ld /tools/aarch64-unknown-linux-gnu/bin/ld

gcc -dumpspecs | sed -e 's@/tools@@g' -e '/\*startfile_prefix_spec:/{n;s@.*@/usr/lib/ @}' -e '/\*cpp:/{n;s@$@ -isystem /usr/include@}' > \
`dirname $(gcc --print-libgcc-file-name)`/specs


echo 'int main(){}' > dummy.c
cc dummy.c -v -Wl,--verbose &> dummy.log
readelf -l a.out | grep ': /lib'

      [Requesting program interpreter: /lib/ld-linux-aarch64.so.1]

grep -o '/usr/lib.*/crt[1in].*succeeded' dummy.log

[/usr/lib/../lib/crt1.o succeeded
/usr/lib/../lib/crti.o succeeded
/usr/lib/../lib/crtn.o succeeded]

grep -B1 '^ /usr/include' dummy.log

[#include <...> search starts here:
 /usr/include]

grep 'SEARCH.*/usr/lib' dummy.log |sed 's|; |\n|g'

[SEARCH_DIR("=/tools/x86_64-pc-linux-gnu/lib64")
SEARCH_DIR("/usr/lib")
SEARCH_DIR("/lib")
SEARCH_DIR("=/tools/x86_64-pc-linux-gnu/lib");]

grep "/lib.*/libc.so.6 " dummy.log

[attempt to open /lib/libc.so.6 succeeded]

grep found dummy.log

[found ld-linux-aarch64.so.1 at /lib/ld-linux-aarch64.so.1]

rm -v dummy.c a.out dummy.log

----------

cd zlib-1.2.11

CFLAGS="-march=armv8-a+crc -mtune=cortex-a53 -Os -pipe" CXXFLAGS="-march=armv8-a+crc -mtune=cortex-a53 -Os -pipe -fno-exceptions -fno-rtti" \
./configure --prefix=/usr

find . -name Makefile -type f -exec sed -i 's/-O3//g' {} \;

time make [0m5.326s]
make install


cd bzip2-1.0.8

patch -Np1 -i ../bzip2-1.0.8-install_docs-1.patch

sed -i 's@\(ln -s -f \)$(PREFIX)/bin/@\1@' Makefile

sed -i "s@(PREFIX)/man@(PREFIX)/share/man@g" Makefile

find . -name Makefile -type f -exec sed -i 's/-O3//g' {} \;

make -f Makefile-libbz2_so
make clean

make
make PREFIX=/usr install

cp -v bzip2-shared /bin/bzip2
cp -av libbz2.so* /lib
ln -sv ../../lib/libbz2.so.1.0 /usr/lib/libbz2.so
rm -v /usr/bin/{bunzip2,bzcat,bzip2}
ln -sv bzip2 /bin/bunzip2
ln -sv bzip2 /bin/bzcat


cd file-5.38

CFLAGS="-march=armv8-a+crc -mtune=cortex-a53 -Os -pipe" CXXFLAGS="-march=armv8-a+crc -mtune=cortex-a53 -Os -pipe -fno-exceptions -fno-rtti" \
./configure --prefix=/usr

time make -j4 [0m7.368s]
make install


cd readline-8.0

sed -i '/MV.*old/d' Makefile.in
sed -i '/{OLDSUFF}/c:' support/shlib-install

CFLAGS="-march=armv8-a+crc -mtune=cortex-a53 -Os -pipe" CXXFLAGS="-march=armv8-a+crc -mtune=cortex-a53 -Os -pipe -fno-exceptions -fno-rtti" \
./configure --prefix=/usr --disable-static --docdir=/usr/share/doc/readline-8.0

make SHLIB_LIBS="-L/tools/lib -lncursesw" [0m4.329s]
make SHLIB_LIBS="-L/tools/lib -lncursesw" install

mv -v /usr/lib/lib{readline,history}.so.* /lib
chmod -v u+w /lib/lib{readline,history}.so.*
ln -sfv ../../lib/$(readlink /usr/lib/libreadline.so) /usr/lib/libreadline.so
ln -sfv ../../lib/$(readlink /usr/lib/libhistory.so ) /usr/lib/libhistory.so


cd m4-1.4.18

sed -i 's/IO_ftrylockfile/IO_EOF_SEEN/' lib/*.c
echo "#define _IO_IN_BACKUP 0x100" >> lib/stdio-impl.h

#*/  Just for annoying nano code coloring

CFLAGS="-march=armv8-a+crc -mtune=cortex-a53 -Os -pipe" CXXFLAGS="-march=armv8-a+crc -mtune=cortex-a53 -Os -pipe -fno-exceptions -fno-rtti" \
./configure --prefix=/usr

make [0m8.893s]
make install


cd bc-2.3.0

PREFIX=/usr CC=gcc CFLAGS="-march=armv8-a+crc -mtune=cortex-a53 -Os -pipe -std=c99" ./configure.sh -G

make [0m4.016s]
make install


cd binutils-2.34

sed -i '/@\tincremental_copy/d' gold/testsuite/Makefile.in

mkdir build
cd build

CFLAGS="-march=armv8-a+crc -mtune=cortex-a53 -Os -pipe" CXXFLAGS="-march=armv8-a+crc -mtune=cortex-a53 -Os -pipe" \
../configure --prefix=/usr --enable-gold --enable-ld=default --enable-plugins --enable-shared --disable-werror --enable-64-bit-bfd --with-system-zlib

find . -name Makefile -type f -exec sed -i 's/-g -O2//g' {} \;
find . -name Makefile -type f -exec sed -i 's/-O2 -g//g' {} \;

make tooldir=/usr [8m37.812s]
make tooldir=/usr install


cd gmp-6.2.0

mv config{fsf,}.guess
mv config{fsf,}.sub

ABI=64 CFLAGS="-march=armv8-a+crc -mtune=cortex-a53 -Os -pipe" CXXFLAGS="-march=armv8-a+crc -mtune=cortex-a53 -Os -pipe" \
./configure --prefix=/usr --enable-cxx --disable-static --docdir=/usr/share/doc/gmp-6.2.0

make [0m58.194s]
make install


cd mpfr-4.0.2

CFLAGS="-march=armv8-a+crc -mtune=cortex-a53 -Os -pipe" CXXFLAGS="-march=armv8-a+crc -mtune=cortex-a53 -Os -pipe" \
./configure --prefix=/usr --disable-static --enable-thread-safe --docdir=/usr/share/doc/mpfr-4.0.2

make [0m37.196s]
make install


cd mpc-1.1.0

CFLAGS="-march=armv8-a+crc -mtune=cortex-a53 -Os -pipe" CXXFLAGS="-march=armv8-a+crc -mtune=cortex-a53 -Os -pipe" \
./configure --prefix=/usr --disable-static --docdir=/usr/share/doc/mpc-1.1.0

make [0m7.913s]
make install


cd gcc-10.1.0


mkdir build
cd build

SED=sed CFLAGS="-march=armv8-a+crc -mtune=cortex-a53 -Os -pipe" CXXFLAGS="-march=armv8-a+crc -mtune=cortex-a53 -Os -pipe" \
../configure --prefix=/usr --enable-languages=c,c++ --disable-multilib --disable-bootstrap --with-system-zlib --libexecdir=/usr/lib \
--enable-fix-cortex-a53-843419

find . -name Makefile -type f -exec sed -i 's/-g -O2//g' {} \;
find . -name Makefile -type f -exec sed -i 's/-O2 -g//g' {} \;
find . -name config.status -type f -exec sed -i 's/-g -O2//g' {} \;

make [28m19.386s]
make install

rm -rf /usr/lib/gcc/$(gcc -dumpmachine)/10.1.0/include-fixed/bits/

ln -sv ../usr/bin/cpp /lib
ln -sv gcc /usr/bin/cc

install -v -dm755 /usr/lib/bfd-plugins
ln -sfv ../../lib/gcc/aarch64-unknown-linux-gnu/10.1.0/liblto_plugin.so /usr/lib/bfd-plugins/

mkdir -pv /usr/share/gdb/auto-load/usr/lib
mv -v /usr/lib/*gdb.py /usr/share/gdb/auto-load/usr/lib

#*/  Just for annoying nano code coloring

rm -r /lib64

ldconfig

----------

echo 'int main(){}' > dummy.c
cc dummy.c -v -Wl,--verbose &> dummy.log
readelf -l a.out | grep ': /lib'

      [Requesting program interpreter: /lib/ld-linux-aarch64.so.1]

grep -o '/usr/lib.*/crt[1in].*succeeded' dummy.log

[/usr/lib/gcc/aarch64-unknown-linux-gnu/10.1.0/../../../crt1.o succeeded
/usr/lib/gcc/aarch64-unknown-linux-gnu/10.1.0/../../../crti.o succeeded
/usr/lib/gcc/aarch64-unknown-linux-gnu/10.1.0/../../../crtn.o succeeded]


grep -B4 '^ /usr/include' dummy.log

[#include <...> search starts here:
 /usr/lib/gcc/aarch64-unknown-linux-gnu/10.1.0/include
 /usr/local/include
 /usr/lib/gcc/aarch64-unknown-linux-gnu/10.1.0/include-fixed
 /usr/include]

grep 'SEARCH.*/usr/lib' dummy.log |sed 's|; |\n|g'

[SEARCH_DIR("/usr/aarch64-unknown-linux-gnu/lib64")
SEARCH_DIR("/usr/local/lib64")
SEARCH_DIR("/lib64")
SEARCH_DIR("/usr/lib64")
SEARCH_DIR("/usr/aarch64-unknown-linux-gnu/lib")
SEARCH_DIR("/usr/local/lib")
SEARCH_DIR("/lib")
SEARCH_DIR("/usr/lib");]


grep "/lib.*/libc.so.6 " dummy.log

[attempt to open /lib/libc.so.6 succeeded]

grep found dummy.log

[found ld-linux-aarch64.so.1 at /lib/ld-linux-aarch64.so.1]

rm -v dummy.c a.out dummy.log

----------

export PATH=/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/sbin:/usr/sbin:/tools/bin [***]

----------

cd bzip2-1.0.8

patch -Np1 -i ../bzip2-1.0.8-install_docs-1.patch

sed -i 's@\(ln -s -f \)$(PREFIX)/bin/@\1@' Makefile
sed -i "s@(PREFIX)/man@(PREFIX)/share/man@g" Makefile

Edit Makefile-libbz2_so
CC=gcc -flto -fuse-linker-plugin -march=armv8-a+crc -mtune=cortex-a53 -Os -pipe
CFLAGS=-fpic -fPIC -Wall -Winline $(BIGFILES)

make -f Makefile-libbz2_so [0m4.842s]
make clean

Edit Makefile
#CC=gcc -flto -fuse-linker-plugin -march=armv8-a+crc -mtune=cortex-a53 -Os -pipe
CC=gcc -march=armv8-a+crc -mtune=cortex-a53 -Os -pipe
#CFLAGS=-Wall -Winline $(BIGFILES)
CFLAGS=-Wall $(BIGFILES)

make [0m4.038s]
make PREFIX=/usr/local install

cp bzip2-shared /usr/local/bin/bzip2
cp -a libbz2.so* /usr/local/lib
cd /usr/local/lib
ln -s libbz2.so.1.0 libbz2.so
cd ../bin
rm {bunzip2,bzcat}
ln -s bzip2 bunzip2
ln -s bzip2 bzcat


cd pkg-config-0.29.2

CC="gcc -march=armv8-a+crc -mtune=cortex-a53 -Os -pipe" \
CXX="g++ -march=armv8-a+crc -mtune=cortex-a53 -Os -pipe -fno-exceptions -fno-rtti" \
./configure --prefix=/usr/local --with-pc-path="/usr/local/lib/pkgconfig:/usr/lib/pkgconfig:/usr/local/share/pkgconfig:/usr/share/pkgconfig" \
--with-internal-glib --disable-host-tool

find . -name Makefile -type f -exec sed -i 's/-g -O2//g' {} \;
find . -name Makefile -type f -exec sed -i 's/-g -Wall -O2/-Wall/g' {} \;

make [0m31.810s]
make install


cd ncurses-6.2

sed -i '/LIBTOOL_INSTALL/d' c++/Makefile.in

CC="gcc -march=armv8-a+crc -mtune=cortex-a53 -Os -pipe" CXX="g++ -march=armv8-a+crc -mtune=cortex-a53 -Os -pipe -fno-exceptions -fno-rtti" \
./configure --prefix=/usr/local --mandir=/usr/local/share/man --with-shared --without-debug --without-normal --enable-pc-files --enable-widec --with-cxx-shared

find . -name Makefile -type f -exec sed -i 's/-O2//g' {} \;

make [0m59.315s]
make install

rm -vf                     /usr/local/lib/libcursesw.so
echo "INPUT(-lncursesw)" > /usr/local/lib/libcursesw.so
ln -sfv libncursesw.so      /usr/local/lib/libcurses.so


cd attr-2.4.48

CC="gcc -march=armv8-a+crc -mtune=cortex-a53 -Os -pipe" \
CXX="g++ -march=armv8-a+crc -mtune=cortex-a53 -Os -pipe -fno-exceptions -fno-rtti" \
./configure --prefix=/usr/local --disable-static

find . -name Makefile -type f -exec sed -i 's/-g -O2//g' {} \;

make [0m3.456s]
make install


cd acl-2.2.53

CC="gcc -march=armv8-a+crc -mtune=cortex-a53 -Os -pipe" \
CXX="g++ -march=armv8-a+crc -mtune=cortex-a53 -Os -pipe -fno-exceptions -fno-rtti" \
./configure --prefix=/usr/local --libexecdir=/usr/local/lib --disable-static

find . -name Makefile -type f -exec sed -i 's/-g -O2//g' {} \;

make [0m7.521s]
make install


cd libcap-2.31

sed -i '/install.*STALIBNAME/d' libcap/Makefile

edit Make.Rules
CC := gcc -march=armv8-a+crc -mtune=cortex-a53 -Os -pipe
CFLAGS := -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64

make [0m3.113s]
make RAISE_SETFCAP=no prefix=/usr/local install
chmod 755 /usr/local/lib/libcap.so.2.31


cd sed-4.8

sed -i 's/usr/tools/' build-aux/help2man
sed -i 's/testsuite.panic-tests.sh//' Makefile.in

CC="gcc -march=armv8-a+crc -mtune=cortex-a53 -Os -pipe" CXX="g++ -march=armv8-a+crc -mtune=cortex-a53 -Os -pipe -fno-exceptions -fno-rtti" \
./configure --prefix=/usr/local --disable-acl

find . -name Makefile -type f -exec sed -i 's/-g -O2//g' {} \;

make [0m16.734s]
make install


cd bison-3.5.2 [/usr/bin/m4 hardcoded]

sed -i '9327 s/mv/cp/' Makefile.in

CC="gcc -march=armv8-a+crc -mtune=cortex-a53 -Os -pipe" CXX="g++ -march=armv8-a+crc -mtune=cortex-a53 -Os -pipe -fno-exceptions -fno-rtti" \
./configure --prefix=/usr/local --docdir=/usr/share/doc/bison-3.5.2

find . -name Makefile -type f -exec sed -i 's/-g -O2//g' {} \;

make -j1 [0m13.669s]
make install


cd flex-2.6.4

sed -i "/math.h/a #include <malloc.h>" src/flexdef.h

HELP2MAN=/tools/bin/true CC="gcc -march=armv8-a+crc -mtune=cortex-a53 -Os -pipe" \
CXX="g++ -march=armv8-a+crc -mtune=cortex-a53 -Os -pipe -fno-exceptions -fno-rtti" \
./configure --prefix=/usr/local --disable-static --docdir=/usr/local/share/doc/flex-2.6.4

find . -name Makefile -type f -exec sed -i 's/-g -O2//g' {} \;

make [0m13.376s]
make install
cd /usr/local/bin
ln -s flex lex


cd grep-3.4

CC="gcc -march=armv8-a+crc -mtune=cortex-a53 -Os -pipe" CXX="g++ -march=armv8-a+crc -mtune=cortex-a53 -Os -pipe -fno-exceptions -fno-rtti" \
./configure --prefix=/usr/local

find . -name Makefile -type f -exec sed -i 's/-g -O2//g' {} \;

make [0m18.597s]
make install


cd bash-5.0

patch -Np1 -i ../bash-5.0-upstream_fixes-1.patch

CC="gcc -march=armv8-a+crc -mtune=cortex-a53 -Os -pipe" CXX="g++ -march=armv8-a+crc -mtune=cortex-a53 -Os -pipe -fno-exceptions -fno-rtti" \
./configure --prefix=/usr/local --docdir=/usr/share/doc/bash-5.0 --without-bash-malloc --with-installed-readline

find . -name Makefile -type f -exec sed -i 's/-g -O2//g' {} \;

# For some reasone configure fines -lncursesw, but Makefile is wrong
sed -i 's@-lcurses@-lncursesw@' Makefile

make [0m40.561s]
make install

cd /bin
rm bash
ln -s /usr/local/bin/bash bash

exec /bin/bash --login +h


cd libtool-2.4.6

CC="gcc -march=armv8-a+crc -mtune=cortex-a53 -Os -pipe" CXX="g++ -march=armv8-a+crc -mtune=cortex-a53 -Os -pipe -fno-exceptions -fno-rtti" \
./configure --prefix=/usr/local --disable-static

find . -name Makefile -type f -exec sed -i 's/-g -O2//g' {} \;

make [0m5.549s]
make install


cd gdbm-1.18.1

CC="gcc -march=armv8-a+crc -mtune=cortex-a53 -Os -pipe" CXX="g++ -march=armv8-a+crc -mtune=cortex-a53 -Os -pipe -fno-exceptions -fno-rtti" \
./configure --prefix=/usr/local --disable-static --enable-libgdbm-compat

find . -name Makefile -type f -exec sed -i 's/-g -O2//g' {} \;

make [0m8.605s]
make install

ldconfig


cd gperf-3.1

CC="gcc -march=armv8-a+crc -mtune=cortex-a53 -Os -pipe" CXX="g++ -march=armv8-a+crc -mtune=cortex-a53 -Os -pipe -fno-exceptions -fno-rtti" \
./configure --prefix=/usr/local

find . -name Makefile -type f -exec sed -i 's/-g -O2//g' {} \;
find . -name config.status -type f -exec sed -i 's/-g -O2//g' {} \;

make [0m2.462s]
make install


cd expat-2.2.9

sed -i 's|usr/bin/env |bin/|' run.sh.in

CC="gcc -march=armv8-a+crc -mtune=cortex-a53 -Os -pipe" CXX="g++ -march=armv8-a+crc -mtune=cortex-a53 -Os -pipe -fno-exceptions -fno-rtti" \
./configure --prefix=/usr/local --disable-static

find . -name Makefile -type f -exec sed -i 's/-g -O2//g' {} \;

make [0m6.843s]
make install


cd perl-5.32.0

cp tc /etc/hosts

export BUILD_ZLIB=False
export BUILD_BZIP2=0

sh Configure -des -Dcc="gcc -march=armv8-a+crc -mtune=cortex-a53 -Os -pipe" -Dprefix=/usr/local -Dvendorprefix=/usr/local \
-Dman1dir=/usr/local/share/man/man1 -Dman3dir=/usr/local/share/man/man3 -Dpager="/usr/bin/less -isR" -Duseshrplib \
-Dusethreads -Duselargefiles -Dusemultiplicity -Darchname=aarch64-linux-thread-multi

find . -name Makefile -type f -exec sed -i 's/-O2//g' {} \;

make [4m9.935s]
touch mymarker
make install
unset BUILD_ZLIB BUILD_BZIP2

PACKAGE=perl-5.32.0
find / -not -type 'd' -cnewer mymarker | grep -v "\/proc\/" | grep -v "^\/sys\/" | tee /sources/$PACKAGE.files

#Remove old link to /tools
rm /usr/bin/perl


cd XML-Parser-2.46

perl Makefile.PL

make [0m2.361s]
make install


cd intltool-0.51.0

sed -i 's:\\\${:\\\$\\{:' intltool-update.in

CC="gcc -march=armv8-a+crc -mtune=cortex-a53 -Os -pipe" CXX="g++ -march=armv8-a+crc -mtune=cortex-a53 -Os -pipe -fno-exceptions -fno-rtti" \
./configure --prefix=/usr/local

make
make install


cd autoconf-2.69

CC="gcc -march=armv8-a+crc -mtune=cortex-a53 -Os -pipe" CXX="g++ -march=armv8-a+crc -mtune=cortex-a53 -Os -pipe -fno-exceptions -fno-rtti" \
./configure --prefix=/usr/local

make [0m7.837s]
make install


cd automake-1.16.1

CC="gcc -march=armv8-a+crc -mtune=cortex-a53 -Os -pipe" CXX="g++ -march=armv8-a+crc -mtune=cortex-a53 -Os -pipe -fno-exceptions -fno-rtti" \
./configure --prefix=/usr/local

make [0m6.201s]
make install


cd xz-5.2.4

CC="gcc -march=armv8-a+crc -mtune=cortex-a53 -Os -pipe" CXX="g++ -march=armv8-a+crc -mtune=cortex-a53 -Os -pipe -fno-exceptions -fno-rtti" \
./configure --prefix=/usr/local --disable-static

find . -name Makefile -type f -exec sed -i 's/-g -O2//g' {} \;

make [0m33.523s]
make install

ldconfig


cd kmod-27

CC="gcc -march=armv8-a+crc -mtune=cortex-a53 -Os -pipe" CXX="g++ -march=armv8-a+crc -mtune=cortex-a53 -Os -pipe -fno-exceptions -fno-rtti" \
./configure --prefix=/usr --bindir=/bin --sysconfdir=/etc --with-rootlibdir=/lib --with-zlib

find . -name Makefile -type f -exec sed -i 's/-g -O2//g' {} \;

make [0m6.134s]
make install


cd gettext-0.20.1

CC="gcc -march=armv8-a+crc -mtune=cortex-a53 -Os -pipe" CXX="g++ -march=armv8-a+crc -mtune=cortex-a53 -Os -pipe -fno-exceptions -fno-rtti" \
./configure --prefix=/usr/local --disable-static

find . -name Makefile -type f -exec sed -i 's/-g -O2//g' {} \;
find . -name config.status -type f -exec sed -i 's/-g -O2//g' {} \;

make [6m21.484s]

##These were there  2020-07-12
need to add -lm to gettext-tools/src/libgettextsrc.la and gettext-tools/gnulib-lib/libgettextlib.la

make install
chmod -v 0755 /usr/local/lib/preloadable_libintl.so


cd coreutils-8.31

patch -Np1 -i ../coreutils-8.31-i18n-1.patch

sed -i '/test.lock/s/^/#/' gnulib-tests/gnulib.mk

autoreconf -fiv

edit src/{un,}expand.c
#define MBFILE_INLINE _GL_EXTERN_INLINE   <----add this line before the inclued
#include <mbfile.h>

FORCE_UNSAFE_CONFIGURE=1 \
CC="gcc -march=armv8-a+crc -mtune=cortex-a53 -Os -pipe" CXX="g++ -march=armv8-a+crc -mtune=cortex-a53 -Os -pipe -fno-exceptions -fno-rtti" \
./configure --prefix=/usr/local --enable-no-install-program=kill,uptime --libexecdir=/usr/local/lib

find . -name Makefile -type f -exec sed -i 's/-g -O2//g' {} \;
find . -name config.status -type f -exec sed -i 's/-g -O2//g' {} \;

make [1m22.532s]
make install

rm /bin/{cat,echo,pwd,stty}
cd /bin
ln -s /usr/local/bin/cat cat
ln -s /usr/local/bin/echo echo
ln -s /usr/local/bin/pwd pwd
ln -s /usr/local/bin/stty stty


cd diffutils-3.7

CC="gcc -march=armv8-a+crc -mtune=cortex-a53 -Os -pipe" CXX="g++ -march=armv8-a+crc -mtune=cortex-a53 -Os -pipe -fno-exceptions -fno-rtti" \
./configure --prefix=/usr/local

find . -name Makefile -type f -exec sed -i 's/-g -O2//g' {} \;

make [0m19.151s]
make install


cd gawk-5.0.1

sed -i 's/extras//' Makefile.in

CC="gcc -march=armv8-a+crc -mtune=cortex-a53 -Os -pipe" CXX="g++ -march=armv8-a+crc -mtune=cortex-a53 -Os -pipe -fno-exceptions -fno-rtti" \
./configure --prefix=/usr/local --libexecdir=/usr/local/lib/gawk

find . -name Makefile -type f -exec sed -i 's/-g -O2//g' {} \;

make [0m32.271s]
make install


cd findutils-4.7.0

CC="gcc -march=armv8-a+crc -mtune=cortex-a53 -Os -pipe" CXX="g++ -march=armv8-a+crc -mtune=cortex-a53 -Os -pipe -fno-exceptions -fno-rtti" \
./configure --prefix=/usr/local --localstatedir=/var/lib/locate --libexecdir=/usr/local/lib/findutils

find . -name Makefile -type f -exec sed -i 's/-g -O2//g' {} \;

make [0m40.674s]
make install

[modify /usr/local/bin/sort -> /bin/sort in updatedb for busybox]


cd groff-1.22.4

PAGE=A4 \
CC="gcc -march=armv8-a+crc -mtune=cortex-a53 -Os -pipe" CXX="g++ -march=armv8-a+crc -mtune=cortex-a53 -Os -pipe -fno-exceptions -fno-rtti" \
./configure --prefix=/usr/local

find . -name Makefile -type f -exec sed -i 's/-g -O2//g' {} \;

make -j1 [2m41.148s]
make install


cd gzip-1.10

sed -i 's/IO_ftrylockfile/IO_EOF_SEEN/' lib/*.c
echo "#define _IO_IN_BACKUP 0x100" >> lib/stdio-impl.h

#*/  Just for annoying nano code coloring

CC="gcc -march=armv8-a+crc -mtune=cortex-a53 -Os -pipe" CXX="g++ -march=armv8-a+crc -mtune=cortex-a53 -Os -pipe -fno-exceptions -fno-rtti" \
./configure --prefix=/usr/local

find . -name Makefile -type f -exec sed -i 's/-g -O2//g' {} \;

make [0m7.099s]
make install


cd make-4.3

sed -i '211,217 d; 219,229 d; 232 d' glob/glob.c

CC="gcc -march=armv8-a+crc -mtune=cortex-a53 -Os -pipe" CXX="g++ -march=armv8-a+crc -mtune=cortex-a53 -Os -pipe -fno-exceptions -fno-rtti" \
./configure --prefix=/usr/local

find . -name Makefile -type f -exec sed -i 's/-g -O2//g' {} \;

make [0m15.777s]
make install


cd patch-2.7.6

CC="gcc -march=armv8-a+crc -mtune=cortex-a53 -Os -pipe" CXX="g++ -march=armv8-a+crc -mtune=cortex-a53 -Os -pipe -fno-exceptions -fno-rtti" \
./configure --prefix=/usr/local

find . -name Makefile -type f -exec sed -i 's/-g -O2//g' {} \;

make [0m13.802s]
make install


cd tar-1.32

FORCE_UNSAFE_CONFIGURE=1 \
CC="gcc -march=armv8-a+crc -mtune=cortex-a53 -Os -pipe" CXX="g++ -march=armv8-a+crc -mtune=cortex-a53 -Os -pipe -fno-exceptions -fno-rtti" \
./configure --prefix=/usr/local --libexecdir=/usr/local/lib/tar

find . -name Makefile -type f -exec sed -i 's/-g -O2//g' {} \;

make [0m28.195s]
make install


cd texinfo-6.7

sed -i '5481,5485 s/({/(\\{/' tp/Texinfo/Parser.pm

CC="gcc -march=armv8-a+crc -mtune=cortex-a53 -Os -pipe" CXX="g++ -march=armv8-a+crc -mtune=cortex-a53 -Os -pipe -fno-exceptions -fno-rtti" \
./configure --prefix=/usr/local --disable-static

find . -name Makefile -type f -exec sed -i 's/-g -O2//g' {} \;

make [0m28.180s]
make install
make TEXMF=/usr/local/share/texmf install-tex


cd util-linux-2.35.2

add tty:x:4: to /etc/group
exec /usr/local/bin/bash --login +h

mkdir -p /var/lib/hwclock

ADJTIME_PATH=/var/lib/hwclock/adjtime 
CC="gcc -march=armv8-a+crc -mtune=cortex-a53 -Os -pipe" CXX="g++ -march=armv8-a+crc -mtune=cortex-a53 -Os -pipe -fno-exceptions -fno-rtti" \
./configure --disable-chfn-chsh --disable-login --disable-nologin --disable-su --disable-setpriv --disable-runuser --disable-pylibmount \
--disable-static --without-python --without-systemd --without-systemdsystemunitdir --libexecdir=/lib

find . -name Makefile -type f -exec sed -i 's/-g -O2//g' {} \;

make [3m5.308s]
make install


cd e2fsprogs-1.45.5

mkdir build
cd build

CC="gcc -march=armv8-a+crc -mtune=cortex-a53 -Os -pipe" CXX="g++ -march=armv8-a+crc -mtune=cortex-a53 -Os -pipe -fno-exceptions -fno-rtti" \
../configure --prefix=/usr --bindir=/bin --with-root-prefix="" --enable-elf-shlibs --disable-libblkid --disable-libuuid --disable-uuidd --disable-fsck

find . -name Makefile -type f -exec sed -i 's/-g -O2//g' {} \;
find . -name Makefile -type f -exec sed -i 's/-O2//g' {} \;

make [1m25.648s]
make install
make install-libs
chmod u+w /usr/lib/{libcom_err,libe2p,libext2fs,libss}.a

----------

cd gmp-6.2.0

mv config{fsf,}.guess
mv config{fsf,}.sub

ABI=64 \
CC="gcc -march=armv8-a+crc -mtune=cortex-a53 -Os -pipe" CXX="g++ -march=armv8-a+crc -mtune=cortex-a53 -Os -pipe" \
./configure --prefix=/usr/local --enable-cxx --disable-static

find . -name Makefile -type f -exec sed -i 's/-O2//g' {} \;
find . -name Makefile -type f -exec sed -i 's/-mtune=k8 -march=k8//g' {} \;
find . -name gmp.h -type f -exec sed -i 's/-O2//g' {} \;
find . -name gmp.h -type f -exec sed -i 's/-mtune=k8 -march=k8//g' {} \;

make [1m34.552s]
make install


cd mpfr-4.1.0

CC="gcc -march=armv8-a+crc -mtune=cortex-a53 -Os -pipe" CXX="g++ -march=armv8-a+crc -mtune=cortex-a53 -Os -pipe" \
./configure --prefix=/usr/local --disable-static --enable-thread-safe --with-gmp=/usr/local

find . -name Makefile -type f -exec sed -i 's/-g -O2//g' {} \;

make [0m48.535s]
make install


cd mpc-1.1.0

CC="gcc -march=armv8-a+crc -mtune=cortex-a53 -Os -pipe" CXX="g++ -march=armv8-a+crc -mtune=cortex-a53 -Os -pipe" \
./configure --prefix=/usr/local --disable-static --with-gmp=/usr/local --with-mpfr=/usr/local

find . -name Makefile -type f -exec sed -i 's/-g -O2//g' {} \;

make [0m8.934s]
make install


cd binutils-2.34

mkdir build
cd build

CC="gcc -march=armv8-a+crc -mtune=cortex-a53 -Os -pipe" CXX="g++ -march=armv8-a+crc -mtune=cortex-a53 -Os -pipe" \
../configure --prefix=/usr/local --enable-shared --disable-werror --enable-gold --enable-ld=default --enable-plugins \
--enable-system-zlib --with-mpc=/usr/local --with-mpfr=/usr/local --with-gmp=/usr/local --enable-64-bit-bfd

[static libs huge with -flto]

find . -name Makefile -type f -exec sed -i 's/-g -O2//g' {} \;
find . -name Makefile -type f -exec sed -i 's/-O2 -g//g' {} \;

make tooldir=/usr/local [7m22.155s]
make tooldir=/usr/local install


cd gcc-10.1.0  (Use same compiler options from last build, only directories and local gmp/mpft/mpc should change)

mkdir build
cd build

LD=ld CFLAGS="-march=armv8-a+crc -mtune=cortex-a53 -Os -pipe" CXXFLAGS="-march=armv8-a+crc -mtune=cortex-a53 -Os -pipe" \
../configure --prefix=/usr/local --enable-languages=c,c++ --disable-multilib --disable-bootstrap --with-system-zlib \
--enable-fix-cortex-a53-843419 --libexecdir=/usr/local/lib --with-mpfr=/usr/local --with-gmp=/usr/local --with-mpc=/usr/local

find . -name Makefile -type f -exec sed -i 's/-g -O2//g' {} \;
find . -name Makefile -type f -exec sed -i 's/-O2 -g//g' {} \;
find . -name config.status -type f -exec sed -i 's/-g -O2//g' {} \;

make [32m1.151s]
touch mymarker
make install

rm -rf /usr/local/lib/gcc/$(gcc -dumpmachine)/10.1.0/include-fixed/bits/

cd /usr/local/bin
ln -s gcc cc
cd /usr/local/lib
ln -s ../bin/cpp ./

install -v -dm755 /usr/local/lib/bfd-plugins
cd /usr/local/lib/bfd-plugins
ln -s ../gcc/aarch64-unknown-linux-gnu/10.1.0/liblto_plugin.so ./

mkdir -pv /usr/local/share/gdb/auto-load/usr/lib
mv -v /usr/local/lib/libstdc++.so.6.0.28-gdb.py /usr/local/share/gdb/auto-load/usr/lib


find / -not -type 'd' -cnewer mymarker | grep -v "\/proc\/" | grep -v "^\/sys\/" | tee files

----------

[remove binutils, gmp, mpfr, mpc from /usr]
[remove gcc, except libgcc, libstdc++ for /usr]
[remove libgcc, libstdc++ for /usr/local]

[for F in `cat files_list`; do rm "$F"; done]

----------

cd util-linux-2.35.2

ADJTIME_PATH=/var/lib/hwclock/adjtime \
CC="gcc -march=armv8-a+crc -mtune=cortex-a53 -Os -pipe" CXX="g++ -march=armv8-a+crc -mtune=cortex-a53 -Os -pipe -fno-exceptions -fno-rtti" \
./configure --prefix=/usr/local --disable-chfn-chsh --disable-login --disable-nologin --disable-su --disable-setpriv --disable-runuser \
--disable-pylibmount --disable-static --without-python --without-systemd --without-systemdsystemunitdir --libexecdir=/usr/local/lib --localstatedir=/var

find . -name Makefile -type f -exec sed -i 's/-g -O2//g' {} \;

make [2m59.421s]
make install

[remove files to match base/extension setup]   yikes


cd e2fsprogs-1.45.5

mkdir build
cd build

CC="gcc -march=armv8-a+crc -mtune=cortex-a53 -Os -pipe" CXX="g++ -march=armv8-a+crc -mtune=cortex-a53 -Os -pipe -fno-exceptions -fno-rtti" \
../configure --prefix=/usr/local --enable-elf-shlibs --disable-libblkid --disable-libuuid --disable-uuidd --disable-fsck

find . -name Makefile -type f -exec sed -i 's/-g -O2//g' {} \;
find . -name Makefile -type f -exec sed -i 's/-O2//g' {} \;

make [0m59.329s]
make install
make install-libs
chmod u+w /usr/local/lib/{libcom_err,libe2p,libext2fs,libss}.a

[remove files to match base/extension setup]


cd file-5.38

CC="gcc -march=armv8-a+crc -mtune=cortex-a53 -Os -pipe" CXX="g++ -march=armv8-a+crc -mtune=cortex-a53 -Os -pipe -fno-exceptions -fno-rtti" \
./configure --prefix=/usr/local

find . -name Makefile -type f -exec sed -i 's/-g -O2//g' {} \;

make [0m6.160s]
make install

[ remove /usr/lib/libmagic* ]

cd m4-1.4.18

sed -i 's/IO_ftrylockfile/IO_EOF_SEEN/' lib/*.c
echo "#define _IO_IN_BACKUP 0x100" >> lib/stdio-impl.h

#*/  Just for annoying nano code coloring

CC="gcc -march=armv8-a+crc -mtune=cortex-a53 -Os -pipe" CXX="g++ -march=armv8-a+crc -mtune=cortex-a53 -Os -pipe -fno-exceptions -fno-rtti" \
./configure --prefix=/usr/local

find . -name Makefile -type f -exec sed -i 's/-g -O2//g' {} \;

make [0m8.849s]
make install

[remove m4 from /usr]

cd bc-2.5.3

PREFIX=/usr/local CC="gcc -march=armv8-a+crc -mtune=cortex-a53 -Os -pipe" CFLAGS="-std=c99" ./configure.sh -G

make [0m3.852s]
make install

[ remove bc from /usr ]

cd udev-174

sed -i -e '/deprecated/d' udev/udevadm-trigger.c

wget -O config.guess 'https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD'
wget -O config.sub 'https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD'
mv config.guess build-aux/
mv config.sub build-aux/

Add #include <sys/sysmacros.h> to udev/udev.h and libudev/libudev.h
Add #include <stdint.h> to extras/mtd_probe/mtd_probe.h

CFLAGS="-march=armv8-a+crc -mtune=cortex-a53 -Os -pipe" CXXFLAGS="-march=armv8-a+crc -mtune=cortex-a53 -Os -pipe" \
./configure --prefix=/usr --sysconfdir=/etc --sbindir=/sbin --with-rootlibdir=/lib --libexecdir=/lib/udev --disable-hwdb \
--disable-gudev --disable-introspection --disable-keymap --exec-prefix=/usr

find . -name Makefile -type f -exec sed -i 's/-O2/ /g' {} \;

make []


cd sudo-1.8.2

rm config.guess
rm config.sub
wget -O config.guess 'https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD'
wget -O config.sub 'https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD'


CC="gcc -march=armv8-a+crc -mtune=cortex-a53 -Os -pipe" CXX="g++ -march=armv8-a+crc -mtune=cortex-a53 -Os -pipe -fno-exceptions -fno-rtti" \
./configure --prefix=/usr --libexecdir=/usr/lib --without-pam

find . -name Makefile -type f -exec sed -i 's/-g -O2//g' {} \;

add to pathnames.h
#ifndef _PATH_MV
#define _PATH_MV                "/bin/mv"
#endif /* _PATH_MV */

make [0m50.718s]
make install

[ copy /etc/sudoers from tc ]


cd libffi-3.3  --- this is installed in initrd for micropython

CC="gcc -march=armv8-a+crc -mtune=cortex-a53 -Os -pipe" CXX="g++ -march=armv8-a+crc -mtune=cortex-a53 -Os -pipe -fno-exceptions -fno-rtti" \
./configure --prefix=/usr --disable-static 

find . -name Makefile -type f -exec sed -i 's/-g -O2//g' {} \;

make [0m3.742s]
touch mymarker
find / -not -type 'd' -cnewer mymarker | grep -v "\/proc\/" | grep -v "^\/sys\/" | tee files


cd micropython-1.12

cd mpy-cross

CC="gcc -march=armv8-a+crc -mtune=cortex-a53 -Os -pipe" CXX="g++ -march=armv8-a+crc -mtune=cortex-a53 -Os -pipe -fno-exceptions -fno-rtti" \
make

cd ../ports/unix
CC="gcc -march=armv8-a+crc -mtune=cortex-a53 -Os -pipe" CXX="g++ -march=armv8-a+crc -mtune=cortex-a53 -Os -pipe -fno-exceptions -fno-rtti" \
make

make PREFIX=/usr install


cd busybox-1.31.1

patch -Np0 -i ../busybox-1.24.1_tc_depmod.patch
patch -Np1 -i ../busybox-1.27.1-wget-make-default-timeout-configurable.patch
patch -Np1 -i ../busybox-1.29.3_root_path.patch

patch -Rp1 -i ../busybox-1.31.1_use_loop-control_if_exists.patch
patch -Np1 -i ../busybox_1.31.1_glibc2.31.patch

cp busybox_1_31_1.suid.config .config

make oldconfig

edit applets/install.sh change busybox to busybox.suid

mkdir /base/busybox.suid
make CC="gcc -march=armv8-a+crc -mtune=cortex-a53 -Os -pipe" CXX="g++ -march=armv8-a+crc -mtune=cortex-a53 -Os -pipe -fno-exceptions -fno-rtti" \
CONFIG_PREFIX=/base/busybox.suid install

cp busybox_1_31_1.config .config

make oldconfig

edit applets/install.sh change busybox.suid to busybox

make CC="gcc -march=armv8-a+crc -mtune=cortex-a53 -Os -pipe" CXX="g++ -march=armv8-a+crc -mtune=cortex-a53 -Os -pipe -fno-exceptions -fno-rtti" \
CONFIG_PREFIX=/base/busybox install


cd bcrypt-1.1

edit Makefile  CFLAGS and PREFIX

make
make install


cd zsync-0.6.2

wget -O config.guess 'https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD'
wget -O config.sub 'https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD'
mv config.guess autotools/
mv config.sub autotools/

CC="gcc -march=armv8-a+crc -mtune=cortex-a53 -Os -pipe" CXX="g++ -march=armv8-a+crc -mtune=cortex-a53 -Os -pipe -fno-exceptions -fno-rtti" \
./configure --prefix=/usr

make
make install


cd zstd-1.4.5

export CFLAGS="-march=armv8-a+crc -mtune=cortex-a53 -Os -pipe"
export CXXFLAGS="-march=armv8-a+crc -mtune=cortex-a53 -Os -pipe -fno-exceptions -fno-rtti"

make

make prefix=/usr/local install

rm -v /usr/local/lib/libzstd.a


cd squashfs-tools-4.4

patch -p1 '../squashfs-tools-fix build failure against gcc-10.patch'

cd squashfs-tools

edit Makefile to enable zstd

export CFLAGS="-march=armv8-a+crc -mtune=cortex-a53 -Os -pipe"
export CXXFLAGS="-march=armv8-a+crc -mtune=cortex-a53 -Os -pipe -fno-exceptions -fno-rtti"

make -j4

make install


