[LV] Are we in for another 6 month round of silence here ?-(

Maciej W. Rozycki macro at linux-mips.org
Wed Sep 2 18:24:44 CEST 2009


Hi James,

 Sorry about the delay -- I'm quite busy these days and do not always read 
e-mail regularly. :(

>  	I sure have not .  I wasn't even sure how to begin testing the changes 
> that have been posted .  Much less how to incorporate them as I am not a 'rpm' 
> user & none of my systems are natively rpm based .  Can you post a method to 
> incorporate the changes that were posted based on a user not having rpm ?

 You can build binaries from RPM source packages yourself even without 
RPM.  The packages themselves are compressed CPIO archives with an 
additional header prepended -- you can strip the header with `rpm2cpio' or 
manually e.g. with `dd' (though I'm not sure how many bytes the header 
consists of -- you'd have to find that information in the Internet 
yourself).  Midnight Commander is capable of getting into them too if the 
right programs are installed in the system (and that seems to work out of 
the box with the Debian system I have tried) and `rpm2cpio' can be 
installed even if the system in question does not use RPM natively, so I 
strongly discourage the manual method.

 In the CPIO archive you'll find a number of files -- one or more 
distribution (usually .tar.bz2) archives, a number of patch files and a 
spec file which is used by RPM as a recipe to build binary packages.  
The archives have to be unpacked, with glibc add-ons placed in the 
top-level directory of the tree obtained from the main archive.  The 
"ports" add-on directory has to be renamed and called simply "ports" 
rather that "glibc-ports-2.4".

 Linux headers have to be extracted somewhere -- it does not matter 
exactly where and the top-level directory of the hierarchy is just fine.  
You'll have to specify that directory explicitly and as an absolute path 
later on, when `configure' is run for glibc.

 In the .spec file you'll find all the patches listed in the order they 
have to be applied.  As the number of patches may be huge and approach 
100, I recommend `quilt' or some other patch management tool (GIT could 
work too, for example ;) ).  Some patches are for linux headers -- they 
have to be applied in the headers tree rather than that of glibc, of 
course.

 Once you've got all the archives unpacked and patches applied you can 
build binaries.  The order matters.  You need to build 
"vax-linux-binutils" first.  Have a look at the .spec file -- after the 
first part where patches are listed and some other parameters specified, 
there is a %build section, which itself is a script template.  You have to 
reproduce the commands somehow -- by e.g. creating a script or just 
running from the command line.  Replace %{_build_alias} RPM macro 
references (as noted by the %{} specifier) with the output of 
`config.guess' on your build system.  Replace %{_host_alias} and 
%{_target_alias} with "vax-linux" or "vax-dec-linux", or even 
"vax-dec-linux-gnu" (any of these will work; I use the former because it's 
shorter).  There may be other macro references -- please ask if you can't 
figure out which means what.

 Once you've built "vax-linux-binutils" you need to install it.  The 
%install section contains the recipe like the above.  Then build the next 
package.  Repeat until all have been installed.  The list is as follows:

1. vax-linux-binutils

2. vax-linux-boot-glibc-headers

3. vax-linux-boot-gcc

4. vax-linux-glibc

At this point you can start building other programs, using the 
newly-installed cross-compiler, C library and binary utilities.  With 
`configure' based scripts you have to specify --target=vax-linux (or 
whatever you chose above).  With plain Makefiles `make CC=vax-linux-gcc' 
should do (adjust the target similarly if needed).  You need to copy or 
export all of these to your target system somehow; running you VAX 
NFS-rooted may be the easiest way.

 Let me know if you get stuck.  It's much easier with RPM. ;)

>  	That was a Forward looking statement .  Had nothing to do with present 
> duration of the lack of I/O on this maillist :-) .

 I'm in the middle of the maths library conversion.  Currently at 
log()/logf(), where a lookup table has to be adjusted for the different 
range the VAX FPU uses.  Nothing terribly complicated -- I have converted 
several similar tables for other maths functions already, although the 
progress has not been as good as I would like it to be as I seem to lack 
time these days.  I try to get back to it as often as I can though, so I 
hope to have finished it soon, though I'd be much more motivated if 
someone else actually tried what I implemented already -- a working shell 
(and especially such a complex one as BASH) should be encouraging enough.  
There aren't that many programs out there that rely on the maths library, 
and the missing auxiliary libraries (which are built after "libm") are 
frequently optional even if used.  Whining OTOH does not help at all.

  Maciej
_______________________________________________
Linux-Vax mailing list
Linux-Vax at mail.pergamentum.com
http://mail.pergamentum.com/mailman/listinfo/linux-vax




More information about the Vax-linux mailing list