[Slackware Alpha]

ASAP: Another Slackware Alpha Project

About the project

This project, unfortunately, has been stalled for some time. The goal of the project, is to create a port of Slackware Linux that runs on systems with Alpha processors. It would not be enough to have a "Slackware-like" system. What is intended here is a system that is Slackware, but runs on an Alpha.

Work has been focused primarily on working with the Slackware-10.0 build scripts to compile the software on a DEC AlphaServer-2100. It is intended that future versions of Slackware will be tracked as closely as possible, so that the Alpha port will be able to keep up.


The first major milestone has finally been reached: as of 2005/04/30, 00:04:35, my development system is running a self-hosting installation of Slackware-10.0, and it's really comforting to finally be working on a system that's familiar! I should certainly acknowledge, and even tip my hat to two projects, in addition to Slackware itself, that have been very instrumental in my being able to achieve this:

  1. The AlphaSlack project (note that at the time I'm writing this, there appears to be a problem with their web server ...), from which I bootstrapped my system, and from which much of the first stage of ASAP was worked on. AlphaSlack appears to be a project creating a Linux distribution that looks and feels like Slackware, but with very current package versions, and I believe a few mostly minor differences in some configurations, and the way some of the software is packaged. They're doing good work, and I owe them thanks for the role their work played in getting the ASAP project off the ground.
  2. Linux From Scratch, which I turned to when I felt I was running into too may hurdles that I believed were caused by my working with build tools that had themselves been built and linked with newer versions of themselves. When I thought I was going to have to start over from the ground up, this project is where I turned to for documentation. It's certainly the place to turn for anyone that doesn't find any Linux distribution currently available is able to meet their needs exactly, and it's a great example of what OpenSource software is all about.
  3. Obviously, Slackware itself, without which there would not be such a high standard for this project to aim for. Every major Linux distribution has its strengths and a particular target user base. It has been well known for years that Slackware is best suited for folks who want a stable computing environment, and that favour function over flash. Among the major Linux distributions, Slackware most resembles a commercial Unix distribution, while the others have tended to be more desktop system oriented. This makes Slackware Linux the best suited to be used on the many Alpha systems that are about to be abandoned by what remains of their manufacturer, all the more so now that it appears that the other major Linux distributions are also rumoured to be dropping support for their own Alpha ports.

Another major milestone reached in the early morning of May 4, 2005: The Glibc package is finally built such that packages which link against libm link correctly and without errors. This has been a major stumbling block all along, and I expect that I would have achieved a self-hosting system sooner if I had resolved this first. Live and learn!

The build scripts are likely to undergo further modifications at this point, as I continue to work towards first getting things working as completely as possible, then towards getting the same functionality with the absolute minimal change I can make to the stock Slackware build scripts. I'm also creating some additional patches that are intended to make the least change possible to get packages compiled and working on Alpha. Note, however, that some of the older patches were created to compile packages with a newer version of Gcc than what is included in Slackware, and the packages may compile on the current system without them, but I expect that they'll ultimately be needed anyway, so I'm keeping them at this time.

The ultimate goal is also to be able to upgrade to newer versions of Slackware very quickly ("ASAP") after they have been released. It would even be particularly nice if I could streamline this (or perhaps with cooperation and acceptance of changes to the "SlackBuild" scripts that I intend to submit for future versions) to the point where producing the "next" version will always be a matter of looping through the list of build scripts, at which point I'll be able to let the computer do all the work. :-)

An attempt has been made to get in touch with the folks at Slackware, though no response has been received at the time of this writing. Further attempts will be made, at intervals, before I go ahead and make this project publically known, as I would consider it ideal to have this become an official Slackware port.

Feel free to have a look at what I've done so far. Packages from a few subsets were attempted on the original host system, and those that built successfully were valuable both for my own experience, and to provide me with a suitable development platform. I expect to continue to make fairly rapid progress at this point, with new packages being completed on a regular basis. See the completed packages for details.

Packages still requiring work:

It's expected that most of the problems listed here will be resolved in later iterations of development. For the moment, anything that isn't strictly required to create a self-hosting system on which development can be done is simply being listed here, with its reason for failing, (often packages not installed or unsuitably configured on my current development system; both situations that will be easy enough to address once a self-hosting system has been achieved) for further review.

This list is current as of Sunday, 12-Jun-2005 16:20:08 EDT.

Need to review the build script for it. Source builds with apparently no errors, but perhaps needs help to build the package. Makefiles do not have DESTDIR in them. It seems likely that we'll need to install "manually" under the package build directory in order to properly make the package.

the transcript file for this one will certainly include more usable information; the messages immediately around the errors don't seem connected. REVIEW
make  -C wavefront modules
make[2]: Entering directory `/mnt/alsa-driver-1.0.5a/isa/wavefront'
gcc -D__KERNEL__ -DMODULE=1 -I/mnt/alsa-driver-1.0.5a/include
    -I/usr/src/linux/include -O2 -mno-fp-regs -ffixed-8 -mcpu=ev4 -Wa,-mev6
    -DLINUX -Wall -Wstrict-prototypes -fomit-frame-pointer -Wno-trigraphs -O2
    -fno-strict-aliasing -fno-common -pipe -DALSA_BUILD -nostdinc -iwithprefix
    include  -DKBUILD_BASENAME=gus_reset   -c -o gus_reset.o gus_reset.c
wavefront_synth.c:10: warning: `errno' defined but not used
make[2]: *** [wavefront_synth.o] Error 1
make[2]: Leaving directory `/mnt/alsa-driver-1.0.5a/isa/wavefront'
make[1]: *** [_modsubdir_wavefront] Error 2
make[1]: *** Waiting for unfinished jobs....
make[1]: Leaving directory `/mnt/alsa-driver-1.0.5a/isa'
make: *** [compile] Error 1

Builds fine, but then attempts to install within development system,
rather than below $PKG.  Need to modify Makefile(s) to recognize

checking for GTK - version >= 1.2.0... no^M 
*** The gtk-config script installed by GTK could not be found
*** If GTK was installed in PREFIX, make sure PREFIX/bin is in
*** your path, or set the GTK_CONFIG environment variable to the
*** full path to gtk-config.

Missing some build tools, such as imake and gccmakedep, (both found in the
X11 package, not yet installed on the development system) but otherwise
seems ok.  The package at least partially builds at the moment.

Minor error encountered during "make install", may be normal:
if [ / = "/" ]; then \
  cp termcap.src /mnt/package-libtermcap/etc/termcap; \
  chown bin.bin /mnt/package-libtermcap/etc/termcap; \
cp: cannot stat `termcap.src': No such file or directory
chown: cannot access `/mnt/package-libtermcap/etc/termcap': No such file or directory
make: [install-data] Error 1 (ignored)

checking for Ogg... no
*** Could not run Ogg test program, checking why...
*** The test program failed to compile or link. See the file config.log for the
*** exact error that occured. This usually means Ogg was incorrectly installed
*** or that you have moved Ogg since it was installed. In the latter case, you
*** may want to edit the ogg-config script:
configure: error: must have Ogg installed!

it seems likely that the development system is missing one or more prerequisits (notably libtiff): this will need to be re-examined:
tifftopnm.c:63:20: tiffio.h: No such file or directory

This one may be interesting:
alpha-slackware-linux-gcc -shared  connection.lo encoders.lo
    giop-msg-buffer.lo iiop-endian.lo hosts_access.lo options.lo shell_cmd.lo
    rfc931.lo eval.lo hosts_ctl.lo refuse.lo percent_x.lo clean_exit.lo
    weak_symbols.lo fromhost.lo fix_options.lo socket.lo tli.lo workarounds.lo
    update.lo misc.lo diag.lo percent_m.lo myvsyslog.lo  -lnsl  -Wl,-soname
    -Wl,libIIOP.so.0 -o .libs/libIIOP.so.0.5.17
weak_symbols.lo(.sdata+0x0): multiple definition of `deny_severity'
connection.lo(.sdata+0x4): first defined here
weak_symbols.lo(.sdata+0x4): multiple definition of `allow_severity'
connection.lo(.sdata+0x0): first defined here
collect2: ld returned 1 exit status
make[3]: *** [libIIOP.la] Error 1
make[3]: Leaving directory `/mnt/ORBit-0.5.17/src/IIOP'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/mnt/ORBit-0.5.17/src'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/mnt/ORBit-0.5.17'
make: *** [all-recursive-am] Error 2

tries to install into development system in order to compile extras;

needs LaTeX installed on development system ...

check the strip command:
Usage: strip  in-file(s)^M
 Removes symbols and sections from files^M
 The options are:^M 
strip: supported targets: elf64-alpha ecoff-littlealpha elf64-little elf64-big elf32-little elf32-big srec symbolsrec tekhex binary ihex trad-core^M

configure: error: gtk+-2.0 was not found by pkg-config

configure: Checking for Qt...QTDIR not set and Qt not found at standard locations!

/usr/lib/gcc/alpha-slackware-linux/3.4.1/../../../../alpha-slackware-linux/bin/ld: /usr/lib/gcc/alpha-slackware-linux/3.4.1/../../../libm.a(halfulp.o): gp-relative relocation against dynamic symbol tab54
/usr/lib/gcc/alpha-slackware-linux/3.4.1/../../../../alpha-slackware-linux/bin/ld: /usr/lib/gcc/alpha-slackware-linux/3.4.1/../../../libm.a(halfulp.o): gp-relative relocation against dynamic symbol tab54
collect2: ld returned 1 exit status

Will be resolved after espgs is compiled and installed:
ps2pdf -dOptimize=true   nasmdoc.ps nasmdoc.pdf
make: ps2pdf: Command not found
make: *** [nasmdoc.pdf] Error 127

./configure ...
checking for kernel OProfile support... no
configure: error: no suitably configured kernel include tree found
make: *** No targets specified and no makefile found.  Stop.
make: *** No rule to make target `install'.  Stop.

cc -O -g -DSYSV -DSVR4 -I../include   -c -o memmove.o memmove.c
memmove.c: In function `memmove':
memmove.c:28: error: argument "t" doesn't match prototype
cc1: error: prototype declaration
memmove.c:28: error: argument "f" doesn't match prototype
cc1: error: prototype declaration
memmove.c:28: error: argument "n" doesn't match prototype
cc1: error: prototype declaration
make[2]: *** [memmove.o] Error 1
make[2]: Leaving directory `/mnt/pmake/lib/sprite'
make[1]: *** [all] Error 2
make[1]: Leaving directory `/mnt/pmake/lib/sprite'
make: *** [lib/sprite/libsprite.a] Error 2

ar cr libpython2.3.a Modules/threadmodule.o  Modules/signalmodule.o  Modules/posixmodule.o  Modules/errnomodule.o  Modules/_sre.o  Modules/_codecsmodule.o  Modules/zipimport.o  Modules/symtablemodule.o  Modules/xxsubtype.o
ranlib libpython2.3.a
/usr/lib/gcc/alpha-slackware-linux/3.4.1/../../../../alpha-slackware-linux/bin/ld: /usr/lib/gcc/alpha-slackware-linux/3.4.1/../../../libm.a(halfulp.o): gp-relative relocation against dynamic symbol tab54
/usr/lib/gcc/alpha-slackware-linux/3.4.1/../../../../alpha-slackware-linux/bin/ld: /usr/lib/gcc/alpha-slackware-linux/3.4.1/../../../libm.a(halfulp.o): gp-relative relocation against dynamic symbol tab54
collect2: ld returned 1 exit status
ln: accessing `libpython2.3.so.1.0': No such file or directory
make: *** [libpython2.3.so] Error 1

SDL links against alsa-lib, arts, audiofile, esound, and the X11
libraries, not all of which are currently available on my development

- while building netkit-ntalk-0.11:
   make[1]: Entering directory `/mnt/netkit-ntalk-0.11/talkd'
   gcc -pipe -O2 -Wall -W -Wpointer-arith -Wbad-function-cast -Wcast-qual -Wstrict-
   prototypes -Wmissing-prototypes -Wmissing-declarations -Wnested-externs -Winline
    -Wcast-align -DGNU_LIBC -D_GNU_SOURCE -I../include announce.c -c
   announce.c: In function `print_mesg':
   announce.c:106: warning: implicit declaration of function `localtime'
   announce.c:106: warning: nested extern declaration of `localtime'
   announce.c:106: warning: assignment makes pointer from integer without a cast
   announce.c:113: error: dereferencing pointer to incomplete type
   announce.c:113: error: dereferencing pointer to incomplete type
   make[1]: *** [announce.o] Error 1
   make[1]: Leaving directory `/mnt/netkit-ntalk-0.11/talkd'
- the rest of the package builds without trouble;


Packages currently being omitted:

subset "a"

no power-management support on Alpha (that I know of)
Will likely still be looked at

no power-management support on Alpha (that I know of)
Will likely still be looked at

for IDE disks
Will likely still be looked at

for USB and PCMCIA devices
Will likely still be looked at

for ISA bus devices
may still be looked at

for IDE disks

Likely will be included if deemed appropriate

x86 Linux Loader (aboot included instead)

loadlin (lodlin16)
DOS/Windows based Linux loader

mkinitrd (busybox-1.00-pre9)
busybox's insmod doesn't support Alpha

subset "d"

8086 assembler/loader

Looks like a binary distribution (j2sdk-1_4_2_04-linux-i586.bin); I'll need to locate either source, or a binary distribution for Linux-Alpha ...

This web page was created entirely by hand, and is best viewed with any web browser you choose.
Last updated Sunday, 19-Oct-2008 21:55:48 EDT.
Sylvain Robitaille, asap@therockgarden.ca