Fri Jul 19 14:25:17 1996 This directory contains what's needed to build glibc snapshots. The present setup has been tested for ELF only, though ECOFF should still work. * Getting Started How to get started with glibc/ELF: o Get the latest kernel patch from: ftp://ftp.azstarnet.com/pub/linux/axp/sys/axp-diffs-*.gz Apply patch to corresponding kernel sources, build and install new kernel. Be sure to enable ELF support when configuring the kernel! o Get a recent snapshot of gcc and the binutils that generate ELF files. See ftp://atheist.tamu.edu/pub/richard/linux/axp/README. o Make sure you have the gperf binary installed; if you don't have it, get cperf-2.1a.tar.gz from your favorite ftp site (e.g., ftp://prep.ai.mit.edu:/pub/gnu) build it and install it. A recent version of GNU m4 and autoconf are needed as well. o Save ECOFF gcc, binutils, and libc mv /usr/lib/gcc-lib/alpha-linux{,ecoff} mkdir -p /usr/alpha-linuxecoff/{bin,lib} ln /usr/bin/{ar,as,ld,nm,ranlib,strip} /usr/alpha-linuxecoff/bin/ ln /usr/lib/{*.o,libc.a,libm.a} /usr/alpha-linuxecoff/lib/ o Build binutils: - ./configure --prefix=/usr alpha-linux - make - make install o Build gcc: - ./configure --prefix=/usr alpha-linux - sed 's/^STMP_FIXPROTO =.*$/STMP_FIXPROTO =' Makefile > M; mv M Makefile - make CFLAGS='-O' LANGUAGES=c - This will eventually fail while trying to link `enquire', since you don't have the ELF libc built yet. Just bypass this by running "cc -o enquire enquire.c" youself, and then rerunning the make. - make install o Build glibc: - get the latest libc-*-alpha-diff.gz file - get the glibc snapshot of the corresponding date (ask if you don't know where these snapshots are) - extract glibc, then cd to its root directory - take a look at configparms-elf.sample and create your own configparms file based on that (it goes into the root directory of glibc) - if you want crypt support, get the latest crypt tar file, extract it into the glibc root directory, then add "crypt" to the "subdirs" variable in Makefile; the canonical ftp site for crypt is ftp.uni-c.dk (please do NOT download crypt from a US ftp site if you're outside of the US) - run configure (no arguments needed if you setup configparms) - build glibc: o first time: make BUILD_CC='gcc -b alpha-linuxecoff' > log 2>&1 &" o once fully ELF hosted: make >log 2>&1 - once the build has completed, run "make test"; it should get through all tests without stopping; the *.out files contain additional output in case of trouble - su root - make install o Install additional header files: - get the latest axp-extras-*.tar.gz file - edit Makefile to suite your needs - run "make" as root That's it! * Additional Info The following files are in this directory. They're supposed to help transitioning to glibc: o configparms-*.sample: The glibc configparms files that I am/was using. May help getting an FSSTND compliant layout. o axp-extras: Additional header files that are needed on top of the kernel and the glibc files. o Everything else: patches that are needed to build the package for with glibc. o axpbin-*: Some tools that may be necessary to build glibc. In particular, there is gperf (which is an ECOFF binary) and as-ecoff which is a fixed ECOFF as (the fix involves the parsing of .weakext, which was broken in earlier versions). If you use ELF, you probably don't want these anymore. A list of packages that have been compiled successfully is appended below. The sources come mostly from the Red Hat 3.0.3 source. Enjoy, --david Packages compiled with glibc/ELF: - libtermcap-2.0.7 no patches necessary, but had to rename from libtermcap.so.2.0.7 to libtermcap.so.2 - binutils-2.7 no problems, no patches - gcc-960707 no problems, no patches - gdb-4.16 see gdb-4.16axp-2.diff.gz [patch submitted to FSF] - taper-2.7.3 no patches necessary - util-linux-2.5 apply util-linux-2.5axp-3.patch.gz on top of Red Hat 3.0.3 sources - bash-1.14.6 apply bash-1.14.6-rh3.0.3-glibc.patch.gz on top of Red Hat 3.0.3 sources - zlib-1.0 no patches (but be sure shared version is built) - initscripts-2.5-2.axp.rpm - dev-1.6-1.axp.rpm - file-3.19 see file-3.19-elf64.patch.gz to add 64bit ELF support - fileutils-3.12 see fileutils-3.12glibc.patch - textutils-1.14 no problems, no patches - nvi.1.49 no problems, no patches - sysklogd-1.3 see sysklogd-1.3glibc.patch.gz - procps-1.01axp-2 OK, but requires X11 for some progs - gdbm-1.7.3 no problems, no patches - perl-5.001m don't link with -lbsd, otherwise no problems - grep-2.0 no problems, no patches - findutils-4.1 see findutils-4.1glibc.patch.gz - bdflush-1.5 see bdflush-1.5glibc.patch.gz - sed-2.05 see sed-2.05glibc.patch.gz - gawk-2.15 no problems, no patches - less-290 no problems, no patches - strace-3.0.14 see strace-3.0.14elf.patch.gz - automake-1.0 no problems, no patches - perl-5.001m no problems, no patches (with glibc >= 960714) - groff-1.10 no patches, but needs option -fno-rtti to avoid unresolved reference to __rtti_user; also, use CXX=gcc to avoid reference to (unneeded) libstdc++.a - man-1.4g no problems, no patches - man-pages-1.10 no problems, no patches - m4-1.4 no problems, no patches - emacs-19.31.93 no problems, no patches - ncompress-4.2.4 built with -DNO_ALLIGN=0 - bison-1.24 no problems, no patches - flex-2.5.2 no problems, no patches - pppd-2.2.0e see pppd-2.2.0eglibc patch, also, call make with LIBS=-lutil COPTS=-O2 - NetKit-A-0.08 NetKit-A-rh3.0.3-glibc.patch.gz - NetKit-B-0.06 see NetKit-B-rh3.0.3-glibc.patch.gz - tar-1.11.8-4 make CFLAGS="-DHAVE_STRERROR=1 -D_GNU_SOURCE" - rpm-2.0.7 omit -lintl during link - tcp_wrappers_7.3 build with -DSYS_ERRLIST_DEFINED defined in EXTRA_CFLAGS - bind-4.9.3-5 in res/gethnamaddr.c rename dprintf to Dprintf - patch-2.1-3 no problems, no patches - ipfwadm-2.1 no problems, no patches - cpio-2.4.1 rmt.c needs sys_errlist to be #ifdef __GNU_LIBRARY__ - diffutils-2.7-4 no problems, no patches - procmail-3.10-5 src/formail.c: renamed daemon to daemon_ to avoid clash - sendmail-8.7.4 link with -lresolv and RPM_OPT_FLAGS=-O2!! - popclient-2.21-5. no problems, no patches - anonftp-2.0-1 no problems, no patches - mailcap-1.0-2 no problems, no patches - wu-ftpd-2.4.2-beta-11 see wu-ftpd-2.4.2-beta-11glibc.diff.gz - mailx-5.5.kw-4 in mailx/popen.c replace wait_status.w_status with WEXITSTATUS(wait_status), link without -lbsd, be sure to apply my unaligned access fix to strings.c as wel (June 22 mail on linux-alpha). [patch submitted to Ken] - ncftp-1.9.4 replace struct __fd_set by __fd_set; ifdef out code after opendir like in wu-ftpd patch - cperf-2.1a Do makedepend, #ifdef out declaration of sys_errlist in stderr.c and build with make OFLAGS=-O2 - byacc-1.9-3 no problems, no patches - words-2-2 no problems, no patches - ispell-3.1.18-3 no problems, no patches - texinfo-3.7-4 no problems, no patches - rcs-5.7-3 no problems, no patches - xpm-3.4f no problems, but enable shared libs by not applying Alpha-specific patch - xmailbox-2.2-3 no problems, no patches - libgr-2.0.2-8 pbm/libpbm1.c: ifdef out sys_errlist if __GNU_LIBRARY__ rle/rle_open_f.c: include (why needed?) - xv-3.10a-3 build with -D_GNU_SOURCE xv.h: ifdef out sys_errlist declaration link with -rpath /usr/X11R6/lib (should be implied by -L/usr/X11R6/lib???) - fvwm-1.24r-7 no problems, no patches - netpbm-1mar1994-3 make sure A_STRERROR gets defined in pbmplus.h - tcltk-7.4_4.0 fix duplicate case due to EDEADLOCK==EDEADLK - xgalaga-1.6b-2 no problems, no patches - modules-1.2.8-7 don't need -linux anymore - archie-1.4.1 no problems, no patches - sharutils-4.2-3 no problems, no patches - xpdf-0.5 no problems, no patches - XFree86 See patches by Richard (rth-x-*). Make sure xdm gets linked with -rdynamic as last option (the greeter library cannot be loaded otherwise). - nfs-server-2.2beta16 see nfs-server-2.2beta16axp.patch.gz. Be sure to use rpcgen.new from NetKit-B---the glibc rpcgen does not support -C yet. - amd-920824upl67-6 see amd920824upl67axp.diff.gz - csh-5.2.6-3 see csh-5.2.6axp.diff.gz - tcpdump-3.0.2 see tcpdump-3.0.2-linux-axp.diff.gz