[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