Pat's "how to make the Slackware egcs package" notes. To make the Slackware package, untar egcs source, configure and build as in egcs.configure and egcs.make. Then, we add these items to what's installed with a "make install", and package it up with "makepkg". The egcs-2.1.1-linux.patch comes from the RedHat RPM, and is used so that we get compatible .sonames for libstdc++. They give hjl's directory on ftp.varesearch.com (/pub/support/hjl/) as the original source, but I didn't find the patch there. The source of the -davem patch is unknown, but I suspect davem has something to do with it. ;) 1. add /usr/bin/cpp: #!/bin/bash - for i in /usr/lib/gcc-lib/i*86*linux*/*/cpp; do exec "$i" "$@" done 2. add /lib/cpp -> /usr/bin/cpp link. 3. Adjust filenames and links in /usr/bin: lrwxrwxrwx 1 root root 3 Jun 22 17:58 c++ -> g++* -rwxr-xr-x 1 root bin 25500 Jun 22 17:35 c++filt* lrwxrwxrwx 1 root root 3 Jun 22 18:01 cc -> gcc* -rwxr-xr-x 1 root bin 84 May 16 1998 cpp* lrwxrwxrwx 1 root root 12 Jun 22 17:57 egcs -> egcs-2.91.66* -rwxr-xr-x 1 root bin 64296 Jun 22 17:35 egcs-2.91.66* lrwxrwxrwx 1 root root 3 Jun 22 18:01 f77 -> g77* lrwxrwxrwx 1 root root 16 Jun 22 17:58 g++ -> g++-egcs-2.91.66* -rwxr-xr-x 1 root bin 65716 Jun 22 17:35 g++-egcs-2.91.66* -rwxr-xr-x 1 root bin 68160 Jun 22 17:35 g77* lrwxrwxrwx 1 root root 12 Jun 22 17:57 gcc -> egcs-2.91.66* -rwxr-xr-x 1 root bin 13904 Jun 22 17:35 gcov* lrwxrwxrwx 1 root root 12 Jun 22 17:57 i386-slackware-linux-gcc -> egcs-2.91.66* -rwxr-xr-x 1 root bin 29984 Jun 22 17:35 protoize* -rwxr-xr-x 1 root bin 25984 Jun 22 17:35 unprotoize* # Obsolete. The /usr/ix86-linux/ target came from the official releases of libc5, and was never a target # supplied by GNU software, so far as I know. We will use /usr/i386-slackware-linux/ as the build target # for Slackware Linux systems from now on. #4. mv /usr/i386-pc-linux-gnulibc1 to /usr/ix86-linux. # #5. add i386-pc-linux-gnulibc1 -> ix86-linux link in /usr. # Also obsolete. Recent versions of egcs place this file (now called g2c.h) in /usr/lib/i386-*-linux/egcs-*/include, # which seems like a good enough place for it. #6. mv /usr/local/include/f2c.h to /usr/include/f2c.h. rmdir empty /usr/local. # /usr/lib/g++-include/ is another obsolete libc5 convention. And the .so links are handled properly by egcs now. #7. Add links in /usr/lib: # g++-include -> /usr/include/g++ # libstdc++.so -> libstdc++.so.2.8 8. gzip files in /usr/info, /usr/man/man1. 9. Add links in /usr/man/man1: lrwxrwxrwx c++.1.gz -> g++.1.gz lrwxrwxrwx cc.1.gz -> gcc.1.gz lrwxrwxrwx cpp.1.gz -> cccp.1.gz lrwxrwxrwx f77.1.gz -> g77.1.gz 10. That's about it... now add any additional documentation needed in /usr/doc, and then package it up with makepkg, or split into C/C++/Obj-C/F77 packages and package those up with makepkg.