In this section we're going to reinstall all software that has been linked statically before dynamically. It's pretty straightforward like it was when we prepared our system for the Glibc installation.
It's important that you take a close look at this section. If you decide you can't be bothered reinstalling all the previously installed software, at least look at the new libraries and programs in this section. A few programs that are already installed depend on certain libraries when dynamically linked. But these libraries aren't only used by the already installed programs; other software might require it as well, so you want to install those. Also, a few programs recommend other programs to be installed. We didn't require those programs for the Glibc and GCC installation, but we might as well install them now to avoid problems later.
configure
make
make install
configure
make CC=/usr/gcc2723/bin/gcc SHOBJ_CC=/usr/gcc2723/bin/gcc shared
make CC=/usr/gcc2723/bin/gcc install
make install-shared
configure --with-installed-readline
make CC=/usr/gcc2723/bin/gcc
Makefile
file and find the variable: bindirmake install
The just installed Bash version is compiled with the -g compiler flag, which means it's compiled with debugging information. This means that when you ever need to run bash through a debugger, the output is human readable, whereas a binary compiled without debugger information is very hard to debug. The downside is that the Bash executable is now about 1MB in size. If you remove the debug information, you'll have an executable of around 340KB in size. This is quite a difference and worth it if you don't debug programs at all.
You can edit the Makefile files whenever you compile a program so you can remove the -g compiler flags (often found in a CFLAGS variable), or you can run the strip program with one or more executables as the parameter(s). All debugging information will de deleted (this won't affect the program itself in any way whatsoever). The choice is yours.
make
make install
configure
make
make install
configure
make
make install
configure
make
date echo false pwd sleep stty su true uname
chroot
basename dirname env expr factor groups id logname nice nohup patchchk printenv printf seq tee test tty uptime users who whoami yes
configure
make
Makefile
filemake install
/bin/install
file to the /usr/bin
directoryconfigure
make
make fdisk
make cfdisk
cfdisk fdisk
cfdisk.8 fdisk.8
login.1
agetty.8
make
mount umount swapon losetup
*.8
files/sbin/swapoff
to /sbin/swapon
make dmesg
make rdev
dmesg
rdev
dmesg.8 rdev.8 swapdev.8 ramsize.8 vidmode.8 rootflags.8
/sbin/rdev, /sbin/swapdev, /sbin/ramsize, /sbin/vidmode
and /sbin/rootflags
to /sbin/rdev
make more MOREHELPDIR=/usr/share/more
more
more.1
/usr/share/more
directorymore.help
configure
make
src/Makefile
file and find the variable: bindirmake install
/bin/cat
configure
make
make install
/usr/bin/rmt
programconfigure
make
I'm using version 1.2.4 and during the compilation process I'm getting this error: conflicting types for basename. If you're also being troubled by this error, here's how to fix it:
gzip.h
file and find this line: extern char *basename OF((char *fname));util.c
file and find the line: char *basename(fname)Recompile the package now (with make) and the compilation process should finish properly this time
Makefile
file and find the variable: bindirmake install
configure
make
make install
configure
make
make install
configure
make
make install
configure
make
make install
configure
make
make install
configure
make
I'm using version 4.1 and during the compilation I'm getting this error. Although it is a fatal error, the compilation process doesn't stop when the errors occurs, so you need to watch your compilation output closely to find out if you also get the following error: defs.h:304: conflicting types for `basename'. If you're also troubled by that error, here's how to fix it:
find/Makefile
file and find the variable: CFLAGSfind/defs.h
file and find this line: char *basename P_ ((char *fname));find/util.c
file and find this line: char *basename (fname)This line is separated over two lines ("char *" is on the first line and "basename(fname)" on the second line).
You don't need to keep this line separated over two lines. It doesn't matter at all whether you keep it like that or not.
Recompile the package (with make) and the compilation process should finish properly this time.
make install
configure
make
make install
configure
make
make install
Configure
If you agree on all default values, you might want to configure the package by running Configure -d
. This way you don't have to press enter all the time to accept the default values.
make
make test
make install
configure
make
make install
configure
make CC=/usr/gcc2723/bin/gcc
make install