Casual Hacking

Main Menu

Bootstrapping gcc 4.6.2 from 4.1.2

by Waitman Gobble
Part 2
"To Guile, with java, tcl and a couple goodies"
November 19, 2011

1. libffi-3.0.10
 
./configure --prefix=/home/devcc --with-sysroot=/home/devcc --with-gnu-ld
/home/devcc/bin/make
/home/devcc/bin/make install

* note that ffi.h and ffitarget.h end up in /home/devcc/lib/libffi-3.0.10/include/


2. libunistring-0.9.3

./configure --prefix=/home/devcc --with-libiconv-prefix=/home/devcc \
	--enable-threads=pth --with-gnu-ld --with-libpth-prefix=/home/devcc
/home/devcc/bin/make
/home/devcc/bin/make install  


3. tcl8.5.11

cd unix
/home/devcc/bin/autoconf
./configure --prefix=/home/devcc --enable-64bit --enable-threads
/home/devcc/bin/make
/home/devcc/bin/make install  


[devcc@q unix]$ /home/devcc/bin/tclsh8.5
% puts $tcl_version
8.5
% which tclsh
/usr/bin/tclsh
% ln -s /home/devcc/bin/tclsh8.5 /home/devcc/bin/tclsh
% which tclsh
/home/devcc/bin/tclsh


4. jdk1.7.0_01

tar xzvf jdk-7u1-linux-x64.tar.gz
mv jdk1.7.0_01 /home/devcc/
ln -s /home/devcc/jdk1.7.0_01 /home/devcc/java
[devcc@q src]$ /home/devcc/java/bin/javac -version
javac 1.7.0_01

5. libtool-2.4.2

./configure --prefix=/home/devcc --enable-ltdl-install --with-gnu-ld \
	--with-sysroot=/home/devcc
/home/devcc/bin/make
/home/devcc/bin/make install  


6. pkg-config-0.26

./configure --prefix=/home/devcc --with-gnu-ld
/home/devcc/bin/make
/home/devcc/bin/make install  
 
  
7. libgpg-error-1.9

./configure --prefix=/home/devcc --with-gnu-ld \
	--with-libiconv-prefix=/home/devcc --with-libintl-prefix=/home/devcc
/home/devcc/bin/make
/home/devcc/bin/make install  


8. libgcrypt-1.5.0  

./configure --prefix=/home/devcc --with-gpg-error-prefix=/home/devcc \
	--with-pth-prefix=/home/devcc
/home/devcc/bin/make
/home/devcc/bin/make install  


9. libassuan-2.0.2

./configure --prefix=/home/devcc
/home/devcc/bin/make
/home/devcc/bin/make install  


10. libksba-1.2.0

./configure --prefix=/home/devcc --with-gnu-ld \
	--with-gpg-error-prefix=/home/devcc
/home/devcc/bin/make
/home/devcc/bin/make install  

 
11. adns-1.2

./configure --prefix=/home/devcc
/home/devcc/bin/make
/home/devcc/bin/make install  


12. openssl-1.0.1-stable-SNAP-20111119

./config --prefix=/home/devcc -fPIC
/home/devcc/bin/make
/home/devcc/bin/make install  


13. sqlite-autoconf-3070900

./configure --prefix=/home/devcc --with-gnu-ld
/home/devcc/bin/make
/home/devcc/bin/make install  


14. cyrus-sasl-2.1.25

./configure --prefix=/home/devcc --with-gnu-ld \
	--with-javabase=/home/devcc/java/include \
	--with-openssl=/home/devcc/ssl \
	--with-sqlite3=/home/devcc --with-des \
	--with-dmalloc=/home/devcc
/home/devcc/bin/make
/home/devcc/bin/make install  


15. db-5.2.36 (BerkeleyDB)

cd build_unix
../dist/configure --prefix=/home/devcc --enable-sql \
	--with-tcl=/home/devcc/lib --with-gnu-ld \
	--with-sysroot=/home/devcc
/home/devcc/bin/make
/home/devcc/bin/make install  

  
16. zlib-1.2.5

./configure --prefix=/home/devcc --64
/home/devcc/bin/make
/home/devcc/bin/make install  


17. curl-7.23.1	

** use pkg-config for openssl in /home/devcc/lib64 otherwise may bomb out.

mkdir /home/devcc/etc
export PKG_CONFIG_PATH=/home/devcc/lib64/pkgconfig 
./configure --prefix=/home/devcc --with-zlib=/home/devcc \
	--with-ca-path=/home/devcc/etc --disable-ldap --disable-ldaps \
	--disable-rtsp --disable-dict --disable-telnet --disable-gopher
/home/devcc/bin/make
/home/devcc/bin/make install  

	
18. bzip2-1.0.6

##edit makefile to include -fPIC
/home/devcc/bin/make
/home/devcc/bin/make install PREFIX=/home/devcc
/home/devcc/bin/make -f Makefile-libbz2_so
cp libbz2.so.1.0* /home/devcc/lib


19. readline-6.2

./configure --prefix=/home/devcc
/home/devcc/bin/make
/home/devcc/bin/make install  


20. gnupg-2.0.18

./configure --prefix=/home/devcc --with-gnu-ld \
	--with-gpg-error-prefix=/home/devcc \
	--with-libgcrypt-prefix=/home/devcc \
	--with-libassuan-prefix=/home/devcc --with-ksba-prefix=/home/devcc \
	--with-pth-prefix=/home/devcc --with-adns=/home/devcc \
	--with-libcurl=/home/devcc --with-libiconv-prefix=/home/devcc \
	--with-libintl-prefix=/home/devcc --with-zlib=/home/devcc \
	--with-readline=/home/devcc --with-bzip2=/home/devcc

/home/devcc/bin/make
/home/devcc/bin/make install  


21. guile (latest dev)

** Note - I had more trial-and-error building guile than anything else! 
** Hopefully your experience will be different.
** pkg-configure /home/devcc/lib
** May have trouble linking if you are using 
** LIBFFI_CFLAGS BDW_GC_CFLAGS 
** LIBFFI_LIB BDW_GC_LIB 
** env. variables.. Note: use PKG_CONFIG_PATH instead!


git clone git://git.sv.gnu.org/guile.git
cd guile
./autogen.sh
export PKG_CONFIG_PATH=/home/devcc/lib/pkgconfig
./configure --prefix=/home/devcc --with-gnu-ld \
	--with-libiconv-prefix=/home/devcc --with-libunistring-prefix=/home/devcc \
	--with-sysroot=/home/devcc --with-libltdl-prefix=/home/devcc \
	--with-libgmp-prefix=/home/devcc --with-libintl-prefix=/home/devcc \
	--with-libreadline-prefix=/home/devcc
/home/devcc/bin/make
/home/devcc/bin/make install  

  
[devcc@q guile]$ guile --version
guile (GNU Guile) 2.1.0.132-4f2b3
Copyright (C) 2011 Free Software Foundation, Inc.

License LGPLv3+: GNU LGPL 3 or later .
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
  




**now you can set your shell to /home/devcc/bin/tclsh if you like
**(add to /etc/shells and chsh -s /home/devcc/bin/tclsh
**or for tab completion and history use readline interface such as tclreadline or rlwrap

22. rlwrap-0.37

./configure --prefix=/home/devcc
/home/devcc/bin/make
/home/devcc/bin/make install  


**put everything in our bin in the tab completion list
[devcc@q rlwrap-0.37]$ cd /home/devcc/bin
[devcc@q bin]$ ls > /home/devcc/etc/bin-list.txt

**add to /home/devcc/.bashrc
alias tclsh='rlwrap -c -f /home/devcc/etc/bin-list.txt tclsh'

tclsh with history and tab completion, yay.


Next Section: Bootstrapping gcc 4.6.2 from 4.1.2 Part 3


Copyright 2011 Waitman Gobble · waitman@waitman.net