-
Notifications
You must be signed in to change notification settings - Fork 16
/
5.7-lfs_glibc-2.22.sh
123 lines (103 loc) · 3.2 KB
/
5.7-lfs_glibc-2.22.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
#!/bin/bash
CHAPTER_SECTION=7
INSTALL_NAME=glibc
echo ""
echo "### ---------------------------"
echo "### Glibc ###"
echo "### CHAPTER 5.$CHAPTER_SECTION ###"
echo "### Glibc-2.22"
echo "### Must be run as \"lfs\" user"
echo ""
echo "### Time estimate:"
echo "### real 14m54.298s"
echo "### user 11m45.084s"
echo "### sys 1m39.134s"
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_partitions
is_user lfs
check_tools
echo ""
echo "... Setup building environment"
BUILD_DIRECTORY=$INSTALL_NAME-build
LOG_FILE=$LFS_BUILD_LOGS_5$CHAPTER_SECTION-$INSTALL_NAME
cd $LFS_MOUNT_SOURCES
check_tarball_uniqueness
init_tarball
cd $(ls -d $LFS_MOUNT_SOURCES/$INSTALL_NAME*/)
echo ""
echo "... Installation starts now"
time {
echo ".... Pre-Configuring"
patch -Np1 -i ../glibc-2.22-upstream_i386_fix-1.patch &> $LOG_FILE-patch.log
mkdir ../$BUILD_DIRECTORY
cd ../$BUILD_DIRECTORY
echo ".... Configuring $SOURCE_FILE_NAME"
../glibc-2.22/configure \
--prefix=/tools \
--host=$LFS_TGT \
--build=$(../glibc-2.22/scripts/config.guess) \
--disable-profile \
--enable-kernel=2.6.32 \
--enable-obsolete-rpc \
--with-headers=/tools/include \
libc_cv_forced_unwind=yes \
libc_cv_ctors_header=yes \
libc_cv_c_cleanup=yes \
&> $LOG_FILE-configure.log
echo ".... Making $SOURCE_FILE_NAME"
make $PROCESSOR_CORES &> $LOG_FILE-make.log
echo ".... Installing $SOURCE_FILE_NAME"
make install $PROCESSOR_CORES &> $LOG_FILE-make-install.log
}
echo ""
echo "... Cleaning up $SOURCE_FILE_NAME"
cd $LFS_MOUNT_SOURCES
[ ! $SHOULD_NOT_CLEAN ] && rm -rf $(ls -d $LFS_MOUNT_SOURCES/$INSTALL_NAME*/)
rm -rf $BUILD_DIRECTORY
get_build_errors_5
echo ""
echo 'int main(){}' > dummy.c
$LFS_TGT-gcc dummy.c
readelf -l a.out | grep ': /tools'
echo ""
echo "ABOVE should be without errors and with the same output than below"
case $(uname -m) in x86_64)
echo "64bit: [Requesting program interpreter: /tools/lib64/ld-linux-x86-64.so.2]" ;;
*)
echo "32bit: [Requesting program interpreter: /tools/lib/ld-linux.so.2]" ;;
esac
echo ""
echo -e "\a"
read -p "Enter to confirm" -n 1 -r
echo ""
rm $LFS_MOUNT_SOURCES/dummy.c $LFS_MOUNT_SOURCES/a.out
echo ""
echo "######### END OF CHAPTER 5.$CHAPTER_SECTION ########"
echo "### Warning Counter: $WARNINGS_COUNTER"
echo "### Error Counter: $ERRORS_COUNTER"
echo "///// HUMAN REQUIRED \\\\\\\\\\\\\\\\\\\\"
echo "### Please run the next step:"
echo "### ./5.8-lfs_libstdcpp-5.2.0.sh"
echo ""
if [ $ERRORS_COUNTER -ne 0 ]
then
exit 6
else
exit 0
fi