mirror of
https://github.com/RomainClaret/lfs-7.8.git
synced 2025-07-31 20:58:49 +00:00
/ tested until 5.23
/ error checking displays now not critical errors + 6.16 + 6.17
This commit is contained in:
@ -107,11 +107,6 @@ rm -rf $BUILD_DIRECTORY
|
||||
|
||||
get_build_errors
|
||||
|
||||
echo ""
|
||||
echo "If you have the error:"
|
||||
echo "no include path in which to search for stdc-predef.h"
|
||||
echo "It should be okay: https://wiki.debian.org/toolchain/BootstrapIssues"
|
||||
|
||||
echo 'int main(){}' > dummy.c
|
||||
cc dummy.c
|
||||
readelf -l a.out | grep ': /tools'
|
||||
|
@ -76,11 +76,6 @@ rm -rf $BUILD_DIRECTORY
|
||||
|
||||
get_build_errors
|
||||
|
||||
echo ""
|
||||
echo "If you have the error:"
|
||||
echo "no include path in which to search for stdc-predef.h"
|
||||
echo "It should be okay: https://wiki.debian.org/toolchain/BootstrapIssues"
|
||||
|
||||
echo ""
|
||||
echo "######### END OF CHAPTER 5.$CHAPTER_SECTION ########"
|
||||
echo "### Warning Counter: $WARNINGS_COUNTER"
|
||||
|
@ -76,11 +76,6 @@ rm -rf $BUILD_DIRECTORY
|
||||
|
||||
get_build_errors
|
||||
|
||||
echo ""
|
||||
echo "If you have the error:"
|
||||
echo "no include path in which to search for stdc-predef.h"
|
||||
echo "It should be okay: https://wiki.debian.org/toolchain/BootstrapIssues"
|
||||
|
||||
echo ""
|
||||
echo "######### END OF CHAPTER 5.$CHAPTER_SECTION ########"
|
||||
echo "### Warning Counter: $WARNINGS_COUNTER"
|
||||
|
@ -67,11 +67,6 @@ rm -rf $BUILD_DIRECTORY
|
||||
|
||||
get_build_errors
|
||||
|
||||
echo ""
|
||||
echo "If you have the error:"
|
||||
echo "no include path in which to search for stdc-predef.h"
|
||||
echo "It should be okay: https://wiki.debian.org/toolchain/BootstrapIssues"
|
||||
|
||||
echo ""
|
||||
echo "######### END OF CHAPTER 5.$CHAPTER_SECTION ########"
|
||||
echo "### Warning Counter: $WARNINGS_COUNTER"
|
||||
|
@ -66,10 +66,6 @@ cd $LFS_MOUNT_SOURCES
|
||||
rm -rf $BUILD_DIRECTORY
|
||||
|
||||
get_build_errors
|
||||
echo ""
|
||||
echo "If you have the error:"
|
||||
echo "no include path in which to search for stdc-predef.h"
|
||||
echo "It should be okay: https://wiki.debian.org/toolchain/BootstrapIssues"
|
||||
|
||||
echo ""
|
||||
echo "######### END OF CHAPTER 5.$CHAPTER_SECTION ########"
|
||||
|
@ -75,11 +75,6 @@ rm -rf $BUILD_DIRECTORY
|
||||
|
||||
get_build_errors
|
||||
|
||||
echo ""
|
||||
echo "If you have the error:"
|
||||
echo "no include path in which to search for stdc-predef.h"
|
||||
echo "It should be okay: https://wiki.debian.org/toolchain/BootstrapIssues"
|
||||
|
||||
echo ""
|
||||
echo "######### END OF CHAPTER 5.$CHAPTER_SECTION ########"
|
||||
echo "### Warning Counter: $WARNINGS_COUNTER"
|
||||
|
@ -74,11 +74,6 @@ rm -rf $BUILD_DIRECTORY
|
||||
|
||||
get_build_errors
|
||||
|
||||
echo ""
|
||||
echo "If you have the error:"
|
||||
echo "no include path in which to search for stdc-predef.h"
|
||||
echo "It should be okay: https://wiki.debian.org/toolchain/BootstrapIssues"
|
||||
|
||||
echo ""
|
||||
echo "######### END OF CHAPTER 5.$CHAPTER_SECTION ########"
|
||||
echo "### Warning Counter: $WARNINGS_COUNTER"
|
||||
|
@ -62,11 +62,6 @@ rm -rf $BUILD_DIRECTORY
|
||||
|
||||
get_build_errors
|
||||
|
||||
echo ""
|
||||
echo "If you have the error:"
|
||||
echo "no include path in which to search for stdc-predef.h"
|
||||
echo "It should be okay: https://wiki.debian.org/toolchain/BootstrapIssues"
|
||||
|
||||
echo ""
|
||||
echo "######### END OF CHAPTER 5.$CHAPTER_SECTION ########"
|
||||
echo "### Warning Counter: $WARNINGS_COUNTER"
|
||||
|
@ -113,17 +113,6 @@ rm -rf $BUILD_DIRECTORY
|
||||
|
||||
get_build_errors
|
||||
|
||||
echo ""
|
||||
echo "If you have the error:"
|
||||
echo "no include path in which to search for stdc-predef.h"
|
||||
echo "It should be okay: https://wiki.debian.org/toolchain/BootstrapIssues"
|
||||
echo ""
|
||||
echo "///// HUMAN REQUIRED \\\\\\\\\\\\\\\\\\\\"
|
||||
echo "Read carefully above"
|
||||
echo ""
|
||||
echo -e "\a"
|
||||
read -p "Enter to confirm" -n 1 -r
|
||||
|
||||
echo ""
|
||||
echo "######### END OF CHAPTER 5.$CHAPTER_SECTION ########"
|
||||
echo "///// HUMAN REQUIRED \\\\\\\\\\\\\\\\\\\\"
|
||||
|
@ -65,11 +65,6 @@ rm -rf $BUILD_DIRECTORY
|
||||
|
||||
get_build_errors
|
||||
|
||||
echo ""
|
||||
echo "If you have the error:"
|
||||
echo "no include path in which to search for stdc-predef.h"
|
||||
echo "It should be okay: https://wiki.debian.org/toolchain/BootstrapIssues"
|
||||
|
||||
echo ""
|
||||
echo "######### END OF CHAPTER 5.$CHAPTER_SECTION ########"
|
||||
echo "///// HUMAN REQUIRED \\\\\\\\\\\\\\\\\\\\"
|
||||
|
@ -82,11 +82,6 @@ rm -rf $BUILD_DIRECTORY
|
||||
|
||||
get_build_errors
|
||||
|
||||
echo ""
|
||||
echo "If you have the error:"
|
||||
echo "no include path in which to search for stdc-predef.h"
|
||||
echo "It should be okay: https://wiki.debian.org/toolchain/BootstrapIssues"
|
||||
|
||||
echo ""
|
||||
echo 'int main(){}' > dummy.c
|
||||
$LFS_TGT-gcc dummy.c
|
||||
|
@ -77,11 +77,6 @@ rm -rf $BUILD_DIRECTORY
|
||||
|
||||
get_build_errors
|
||||
|
||||
echo ""
|
||||
echo "If you have the error:"
|
||||
echo "no include path in which to search for stdc-predef.h"
|
||||
echo "It should be okay: https://wiki.debian.org/toolchain/BootstrapIssues"
|
||||
|
||||
echo ""
|
||||
echo "######### END OF CHAPTER 5.$CHAPTER_SECTION ########"
|
||||
echo "### Warning Counter: $WARNINGS_COUNTER"
|
||||
|
@ -88,11 +88,6 @@ rm -rf $BUILD_DIRECTORY
|
||||
|
||||
get_build_errors
|
||||
|
||||
echo ""
|
||||
echo "If you have the error:"
|
||||
echo "no include path in which to search for stdc-predef.h"
|
||||
echo "It should be okay: https://wiki.debian.org/toolchain/BootstrapIssues"
|
||||
|
||||
echo ""
|
||||
echo "######### END OF CHAPTER 5.$CHAPTER_SECTION ########"
|
||||
echo "### Warning Counter: $WARNINGS_COUNTER"
|
||||
|
@ -88,7 +88,7 @@ time {
|
||||
|
||||
echo ""
|
||||
echo "ABOVE should be the same output than below"
|
||||
echo "### #include <...>"
|
||||
echo "### #include <...> search starts here:"
|
||||
echo "### /usr/include"
|
||||
echo ""
|
||||
echo -e "\a"
|
||||
|
84
6.16-chroot_mpc.sh
Normal file
84
6.16-chroot_mpc.sh
Normal file
@ -0,0 +1,84 @@
|
||||
#!/bin/bash
|
||||
|
||||
CHAPTER_SECTION=16
|
||||
INSTALL_NAME=mpc
|
||||
|
||||
echo ""
|
||||
echo "### ---------------------------"
|
||||
echo "### MPC ###"
|
||||
echo "### CHAPTER 6.$CHAPTER_SECTION ###"
|
||||
echo "### MPC-1.0.3"
|
||||
echo "### Must be run as \"chroot\" user"
|
||||
echo "### ---------------------------"
|
||||
|
||||
echo ""
|
||||
echo "... Loading commun functions and variables"
|
||||
if [ ! -f ./script-all_commun-functions.sh ]
|
||||
then
|
||||
echo "!! Fatal Error 1: './script-all_commun-functions.sh' not found."
|
||||
exit 1
|
||||
fi
|
||||
source ./script-all_commun-functions.sh
|
||||
|
||||
if [ ! -f ./script-all_commun-variables.sh ]
|
||||
then
|
||||
echo "!! Fatal Error 1: './script-all_commun-variables.sh' not found."
|
||||
exit 1
|
||||
fi
|
||||
source ./script-all_commun-variables.sh
|
||||
|
||||
echo ""
|
||||
echo "... Validating the environment"
|
||||
check_user root
|
||||
check_partitions
|
||||
check_chroot
|
||||
|
||||
echo ""
|
||||
echo "... Setup building environment"
|
||||
LOG_FILE=$LFS_BUILD_LOGS_6$CHAPTER_SECTION-$INSTALL_NAME
|
||||
cd /sources
|
||||
test_only_one_tarball_exists
|
||||
extract_tarball ""
|
||||
cd $(ls -d /sources/$INSTALL_NAME*/)
|
||||
|
||||
echo ""
|
||||
echo "... Installation starts now"
|
||||
time {
|
||||
|
||||
echo ".... Configuring $SOURCE_FILE_NAME"
|
||||
./configure \
|
||||
--prefix=/usr \
|
||||
--disable-static \
|
||||
--docdir=/usr/share/doc/mpc-1.0.3 \
|
||||
&> $LOG_FILE-configure.log
|
||||
|
||||
echo ".... Making $SOURCE_FILE_NAME"
|
||||
make $PROCESSOR_CORES &> $LOG_FILE-make.log
|
||||
|
||||
echo ".... Making HTML $SOURCE_FILE_NAME"
|
||||
make html $PROCESSOR_CORES &> $LOG_FILE-make-html.log
|
||||
|
||||
echo ".... Make Checking $SOURCE_FILE_NAME"
|
||||
make check $PROCESSOR_CORES &> $LOG_FILE-make-check.log
|
||||
|
||||
echo ".... Installing $SOURCE_FILE_NAME"
|
||||
make install $PROCESSOR_CORES &> $LOG_FILE-make-install.log
|
||||
|
||||
echo ".... Installing HTML $SOURCE_FILE_NAME"
|
||||
make install-html $PROCESSOR_CORES &> $LOG_FILE-make-install-html.log
|
||||
|
||||
}
|
||||
|
||||
echo ""
|
||||
echo "... Cleaning up $SOURCE_FILE_NAME"
|
||||
cd /sources
|
||||
[ ! $SHOULD_NOT_CLEAN ] && rm -rf $(ls -d /sources/$INSTALL_NAME*/)
|
||||
|
||||
echo ""
|
||||
echo "######### END OF CHAPTER 6.$CHAPTER_SECTION ########"
|
||||
echo "///// HUMAN REQUIRED \\\\\\\\\\\\\\\\\\\\"
|
||||
echo "### Please run the next step:"
|
||||
echo "### ./6.17-chroot_gcc.sh"
|
||||
echo ""
|
||||
|
||||
exit 0
|
201
6.17-chroot_gcc.sh
Normal file
201
6.17-chroot_gcc.sh
Normal file
@ -0,0 +1,201 @@
|
||||
#!/bin/bash
|
||||
|
||||
CHAPTER_SECTION=17
|
||||
INSTALL_NAME=gcc
|
||||
|
||||
echo ""
|
||||
echo "### ---------------------------"
|
||||
echo "### GCC ###"
|
||||
echo "### CHAPTER 6.$CHAPTER_SECTION ###"
|
||||
echo "### GCC-5.2.0"
|
||||
echo "### Must be run as \"chroot\" user"
|
||||
echo "### ---------------------------"
|
||||
|
||||
echo ""
|
||||
echo "... Loading commun functions and variables"
|
||||
if [ ! -f ./script-all_commun-functions.sh ]
|
||||
then
|
||||
echo "!! Fatal Error 1: './script-all_commun-functions.sh' not found."
|
||||
exit 1
|
||||
fi
|
||||
source ./script-all_commun-functions.sh
|
||||
|
||||
if [ ! -f ./script-all_commun-variables.sh ]
|
||||
then
|
||||
echo "!! Fatal Error 1: './script-all_commun-variables.sh' not found."
|
||||
exit 1
|
||||
fi
|
||||
source ./script-all_commun-variables.sh
|
||||
|
||||
echo ""
|
||||
echo "... Validating the environment"
|
||||
check_user root
|
||||
check_partitions
|
||||
check_chroot
|
||||
|
||||
echo ""
|
||||
echo "... Setup building environment"
|
||||
BUILD_DIRECTORY=$INSTALL_NAME-build
|
||||
LOG_FILE=$LFS_BUILD_LOGS_6$CHAPTER_SECTION-$INSTALL_NAME
|
||||
cd /sources
|
||||
test_only_one_tarball_exists
|
||||
extract_tarball ""
|
||||
cd $(ls -d /sources/$INSTALL_NAME*/)
|
||||
|
||||
echo ""
|
||||
echo "... Installation starts now"
|
||||
time {
|
||||
|
||||
echo ".... Pre-Configuring $SOURCE_FILE_NAME"
|
||||
mkdir ../$BUILD_DIRECTORY
|
||||
cd ../$BUILD_DIRECTORY
|
||||
|
||||
echo ".... Configuring $SOURCE_FILE_NAME"
|
||||
SED=sed \
|
||||
../gcc-5.2.0/configure \
|
||||
--prefix=/usr \
|
||||
--enable-languages=c,c++ \
|
||||
--disable-multilib \
|
||||
--disable-bootstrap \
|
||||
--with-system-zlib \
|
||||
&> $LOG_FILE-configure.log
|
||||
|
||||
echo ".... Making $SOURCE_FILE_NAME"
|
||||
make $PROCESSOR_CORES &> $LOG_FILE-make.log
|
||||
|
||||
echo ".... Make Checking $SOURCE_FILE_NAME"
|
||||
ulimit -s 32768
|
||||
make -k check $PROCESSOR_CORES &> $LOG_FILE-make-check.log
|
||||
../gcc-4.9.2/contrib/test_summary &> $LOG_FILE-test-summary.log
|
||||
|
||||
echo ".... Installing $SOURCE_FILE_NAME"
|
||||
make install $PROCESSOR_CORES &> $LOG_FILE-make-install.log
|
||||
|
||||
echo ".... Post-Installing $SOURCE_FILE_NAME"
|
||||
ln -sv ../usr/bin/cpp /lib
|
||||
ln -sv gcc /usr/bin/cc
|
||||
install -v -dm755 /usr/lib/bfd-plugins
|
||||
ln -sfv ../../libexec/gcc/$(gcc -dumpmachine)/5.2.0/liblto_plugin.so /usr/lib/bfd-plugins/
|
||||
|
||||
echo ".... Sanity Checking"
|
||||
|
||||
echo 'int main(){}' > dummy.c
|
||||
cc dummy.c -v -Wl,--verbose &> dummy.log
|
||||
readelf -l a.out | grep ': /lib'
|
||||
|
||||
echo ""
|
||||
echo "ABOVE should be the same output than below"
|
||||
echo "32bit: [Requesting program interpreter: /tools/lib/ld-linux.so.2]"
|
||||
echo "64bit: [Requesting program interpreter: /tools/lib64/ld-linux-x86-64.so.2]"
|
||||
echo ""
|
||||
echo -e "\a"
|
||||
read -p "Enter to confirm" -n 1 -r
|
||||
echo ""
|
||||
|
||||
grep -o '/usr/lib.*/crt[1in].*succeeded' dummy.log
|
||||
|
||||
echo ""
|
||||
echo "ABOVE should be the same output than below"
|
||||
echo "32bit:"
|
||||
echo "### /usr/lib/gcc/i686-pc-linux-gnu/5.2.0/../../../lib64/crt1.o succeeded"
|
||||
echo "### /usr/lib/gcc/i686-pc-linux-gnu/5.2.0/../../../lib64/crti.o succeeded"
|
||||
echo "### /usr/lib/gcc/i686-pc-linux-gnu/5.2.0/../../../lib64/crtn.o succeeded"
|
||||
echo "64bit:"
|
||||
echo "### /usr/lib/gcc/x86_64-unknown-linux-gnu/5.2.0/../../../lib64/crt1.o succeeded"
|
||||
echo "### /usr/lib/gcc/x86_64-unknown-linux-gnu/5.2.0/../../../lib64/crti.o succeeded"
|
||||
echo "### /usr/lib/gcc/x86_64-unknown-linux-gnu/5.2.0/../../../lib64/crtn.o succeeded"
|
||||
echo ""
|
||||
echo -e "\a"
|
||||
read -p "Enter to confirm" -n 1 -r
|
||||
echo ""
|
||||
|
||||
grep -B4 '^ /usr/include' dummy.log
|
||||
|
||||
echo ""
|
||||
echo "ABOVE should be the same output than below"
|
||||
echo "32bit:"
|
||||
echo "### #include <...> search starts here:"
|
||||
echo "### /usr/lib/gcc/i686-pc-linux-gnu/5.2.0/include"
|
||||
echo "### /usr/local/include"
|
||||
echo "### /usr/lib/gcc/i686-pc-linux-gnu/5.2.0/include-fixed"
|
||||
echo "### /usr/include"
|
||||
echo "64bit:"
|
||||
echo "### #include <...> search starts here:"
|
||||
echo "### /usr/lib/gcc/x86_64-unknown-linux-gnu/5.2.0/include"
|
||||
echo "### /usr/local/include"
|
||||
echo "### /usr/lib/gcc/x86_64-unknown-linux-gnu/5.2.0/include-fixed"
|
||||
echo "### /usr/include"
|
||||
echo ""
|
||||
echo -e "\a"
|
||||
read -p "Enter to confirm" -n 1 -r
|
||||
echo ""
|
||||
|
||||
grep 'SEARCH.*/usr/lib' dummy.log |sed 's|; |\n|g'
|
||||
|
||||
echo ""
|
||||
echo "ABOVE should be the same output than below"
|
||||
echo "32bit:"
|
||||
echo 'SEARCH_DIR("/usr/i686-pc-linux-gnu/lib32")'
|
||||
echo 'SEARCH_DIR("/usr/local/lib32")'
|
||||
echo 'SEARCH_DIR("/lib32")'
|
||||
echo 'SEARCH_DIR("/usr/lib32")'
|
||||
echo 'SEARCH_DIR("/usr/i686-pc-linux-gnu/lib")'
|
||||
echo 'SEARCH_DIR("/usr/local/lib")'
|
||||
echo 'SEARCH_DIR("/lib")'
|
||||
echo 'SEARCH_DIR("/usr/lib");'
|
||||
echo "64bit:"
|
||||
echo '### SEARCH_DIR("/usr/x86_64-unknown-linux-gnu/lib64")'
|
||||
echo '### SEARCH_DIR("/usr/local/lib64")'
|
||||
echo '### SEARCH_DIR("/lib64")'
|
||||
echo '### SEARCH_DIR("/usr/lib64")'
|
||||
echo '### SEARCH_DIR("/usr/x86_64-unknown-linux-gnu/lib")'
|
||||
echo '### SEARCH_DIR("/usr/local/lib")'
|
||||
echo '### SEARCH_DIR("/lib")'
|
||||
echo '### SEARCH_DIR("/usr/lib");'
|
||||
echo ""
|
||||
echo -e "\a"
|
||||
read -p "Enter to confirm" -n 1 -r
|
||||
echo ""
|
||||
|
||||
grep "/lib.*/libc.so.6 " dummy.log
|
||||
|
||||
echo ""
|
||||
echo "ABOVE should be the same output than below"
|
||||
echo "32bit: attempt to open /lib/libc.so.6 succeeded"
|
||||
echo "64bit: attempt to open /lib64/libc.so.6 succeeded"
|
||||
echo ""
|
||||
echo -e "\a"
|
||||
read -p "Enter to confirm" -n 1 -r
|
||||
echo ""
|
||||
|
||||
grep found dummy.log
|
||||
|
||||
echo ""
|
||||
echo "ABOVE should be the same output than below"
|
||||
echo "32bit: found ld-linux.so.2 at /lib/ld-linux.so.2"
|
||||
echo "64bit: found ld-linux-x86-64.so.2 at /lib64/ld-linux-x86-64.so.2"
|
||||
echo ""
|
||||
echo -e "\a"
|
||||
read -p "Enter to confirm" -n 1 -r
|
||||
echo ""
|
||||
|
||||
echo ".... Finishing"
|
||||
rm -v dummy.c a.out dummy.log
|
||||
mkdir -pv /usr/share/gdb/auto-load/usr/lib
|
||||
mv -v /usr/lib/*gdb.py /usr/share/gdb/auto-load/usr/lib
|
||||
|
||||
}
|
||||
|
||||
echo ""
|
||||
echo "... Cleaning up $SOURCE_FILE_NAME"
|
||||
cd /sources
|
||||
[ ! $SHOULD_NOT_CLEAN ] && rm -rf $(ls -d /sources/$INSTALL_NAME*/)
|
||||
|
||||
echo ""
|
||||
echo "######### END OF CHAPTER 6.$CHAPTER_SECTION ########"
|
||||
echo "///// HUMAN REQUIRED \\\\\\\\\\\\\\\\\\\\"
|
||||
echo "### Please run the next step:"
|
||||
echo "### ./6.18-chroot_bzip2.sh"
|
||||
echo ""
|
||||
|
||||
exit 0
|
@ -47,7 +47,6 @@ echo "... Installation starts now"
|
||||
time {
|
||||
|
||||
echo ".... Pre-Configuring $SOURCE_FILE_NAME"
|
||||
|
||||
mkdir ../$BUILD_DIRECTORY
|
||||
cd ../$BUILD_DIRECTORY
|
||||
|
||||
@ -56,9 +55,17 @@ time {
|
||||
echo ".... Making $SOURCE_FILE_NAME"
|
||||
make $PROCESSOR_CORES &> $LOG_FILE-make.log
|
||||
|
||||
echo ".... Making HTML $SOURCE_FILE_NAME"
|
||||
make html $PROCESSOR_CORES &> $LOG_FILE-make-html.log
|
||||
|
||||
echo ".... Make Checking $SOURCE_FILE_NAME"
|
||||
make check $PROCESSOR_CORES &> $LOG_FILE-make-check.log
|
||||
|
||||
echo ".... Installing $SOURCE_FILE_NAME"
|
||||
make install $PROCESSOR_CORES &> $LOG_FILE-make-install.log
|
||||
|
||||
echo ".... Installing HTML $SOURCE_FILE_NAME"
|
||||
make install-html $PROCESSOR_CORES &> $LOG_FILE-make-install-html.log
|
||||
|
||||
echo ".... Post-Installing $SOURCE_FILE_NAME"
|
||||
|
||||
|
@ -214,9 +214,17 @@ function get_build_errors {
|
||||
ERRORS_COUNTER=$(grep -n " [Ee]rrors*:* \|^FAIL:" $LFS_BUILD_LOGS_5* | wc -l)
|
||||
|
||||
if [ $ERRORS_COUNTER -ne 0 ]; then
|
||||
echo "!! Fatal Error 7: $SOURCE_FILE_NAME build has $ERRORS_COUNTER errors"
|
||||
echo "!! Error 7: $SOURCE_FILE_NAME build has $ERRORS_COUNTER errors"
|
||||
grep -n " [Ee]rrors*:* \|^FAIL:" $LFS_BUILD_LOGS_5*
|
||||
echo "--> Please check on http://www.linuxfromscratch.org/lfs/build-logs for comparaison"
|
||||
echo ""
|
||||
echo "Known errors and not critical:"
|
||||
echo "Chapter 5.5"
|
||||
echo "Chapter 5.7"
|
||||
echo "Chapter 5.12"
|
||||
echo "Chapter 5.14"
|
||||
echo "Chapter 5.15"
|
||||
echo "Chapter 5.16"
|
||||
else
|
||||
echo "---> Congrats you have no errors."
|
||||
fi
|
||||
|
Reference in New Issue
Block a user