compile-3.3.5.uci


Forum: The Testing Area
Topic: compile-3.3.5.uci
started by: roberts

Posted by roberts on May 11 2008,23:02
Thanks to Juanito for an update to:
Code Sample
Title:          compile-3.3.5.uci
Description:    compile environment for dsl
Version:        3.3.5
Author:         see list of sites below
Original-site:  see list of sites below
Copying-policy: GPL/GPLv2/GPLv3
-----==[  Color = green     Filesize:   13.7MB  ]==-----
Extension by:   juanito
Comments:       Compile environment for dsl based on gcc-3.3.5
               The compile environment was itself compiled on dsl for i486 and the applications used
               (as far as was possible) are those used for the base version of dsl.
               ----------
               Since dsl has three versions of libpng a choice needs to be made as to which
               versions of headers/pkgconfig to use. Links have been placed in /tmp that point
               to the most recent version of libpng - modify these links if you wish to compile
               based on an older version of png.
               ----------
               To use this compile environment, do something like this:
               $ export CPPFLAGS=-I/opt/compile-3.3.5/include
               $ ./configure --prefix=...
               $ make
               # make install (you will need to do this from a separate aterm opened as root)
               Note that the above approach will not work when compiling the full kernel sources.
               You will have to manually link /usr/include -> /opt/compile-3.3.5/include and also
               add  #include <sys/param.h>  at the beginning of ../scripts/mkdep.c to be able to  make dep
               ----------
               Note also that the recommended version of gcc to use when compiling the kernel
               and/or modules for 2.4.26 or 2.4.31 is gcc-2.95.3
               This being said, I have not seen any problems compiling modules with gcc-3.3.5
               ----------
               If you see strange errors when compiling things like glib2, try this:
               $ cp -a /opt/compile-3.3.5/optional /opt
               $ export CPPFLAGS=-I/opt/include
               [thanks to ^thehatsrule^]
               ----------
               This extension contains (headers, some libs and some executables from):
               autoconf-2.62 - http://ftp.gnu.org/gnu/autoconf/
               automake-1.7 - http://ftp.gnu.org/gnu/automake/
               automake-1.85 - http://ftp.gnu.org/gnu/automake/
               automake-1.9 - http://ftp.gnu.org/gnu/automake/
               automake-1.10.1  -  http://ftp.gnu.org/gnu/automake/
               binutils-2.15 - http://ftp.gnu.org/gnu/binutils/
               bison-2.3 (1.875d required to compile xfree86-4.2.1) - http://ftp.gnu.org/gnu/bison/
               bzip2-1.0.2 - http://sources.redhat.com/bzip2
               curl-7.9.5 - http://curl.haxx.se
               expat-2.0.1 - http://expat.sourceforge.net/
               flex-2.5.35 (2.5.4 required to compile xfree86-4.2.1) - http://flex.sourceforge.net
               fontconfig-2.2.1 - http://www.fontconfig.org/
               freetype-2.1.5 - http://www.freetype.org/
               gcc-core-3.3.5 - http://ftp.gnu.org/gnu/gcc/
               gcc-g3.3.5 - http://ftp.gnu.org/gnu/gcc/
               gettext-0.14.4 - http://ftp.gnu.org/gnu/gettext/
               glib-1.2.10 - http://www.gtk.org/
               glibc-2.3.2-sscanf-1.patch - http://ftp.gnu.org/gnu/gettext/
               glibc-2.3.2 - http://ftp.gnu.org/gnu/gettext/
               glibc-linuxthreads-2.3.2 - http://ftp.gnu.org/gnu/gettext/
               gtk+-1.2.10 - http://www.gtk.org/
               linux-2.4.26 sources - http://kernel.org
               libpng-1.0.12 - http://www.libpng.org/
               libpng-1.0.15 - http://www.libpng.org/
               libpng-1.2.5 - http://www.libpng.org/
               libtool-1.5.6 - http://ftp.gnu.org/gnu/libtool/
               m4-1.4.11 - http://ftp.gnu.org/gnu/m4/
               make-3.81 - http://ftp.gnu.org/gnu/make/
               ncurses-5.4 - http://ftp.gnu.org/gnu/ncurses/
               openssl-0.9.7a - http://www.openssl.org/
               patch-2.5.9 - http://ftp.gnu.org/gnu/patch/
               pkg-config-0.23 - http://pkgconfig.freedesktop.org/
               popt-1.7-5 - ftp://ftp.rpm.org/pub/rpm/dist/rpm-4.1.x/
               readline-4.3 (+patches 0-5) - http://ftp.gnu.org/gnu/readline/
               texinfo-4.9 - http://ftp.gnu.org/gnu/texinfo/
               tiff-v3.3.7 - ftp://ftp.sgi.com/graphics/tiff/
               xfree86-4.2.1 - http://www.xfree86.org
               zlib-1.1.4 - http://www.zlib.net/
Change-log:     first version 2007/10/31
               Added headers/libs for openssl & readline
               Removed executables in sbin
               Added symlinks in /opt/bin
               2007/11/22
               Added automake-1.9
               Removed /ramdisk from symlinks
               2007/12/02
               Added headers/libs for fontconfig
               Added symlink ../lib/libpng.so & libpng.so.2
               2007/12/15
               Moved ../X11R6/lib/libGL to ../lib
               Replaced Xlibs with symlink to base dsl libs
               Added headers/libs for popt-1.7 patched to popt-1.7-5
               2008/01/26
               Added back missing openssl headers & lib symlinks
               2008/02/10
               Removed /KNOPPIX from symlinks
               Added automake-1.7 & automake-1.10.1
               Updated autoconf, bison, expat, flex, m4, make, pkg-config & texinfo
               Added flex wrapper for lex
               2008/04/14
               Fixed libpopt symlink
               Added headers/libs for bzip2 & curl
Current:        2008/05/10

Posted by Juanito on June 29 2008,17:22
Still on the trail of tracking down the reason for some persistant erors when using compile-3.3.5, I've been trying to figure out exactly what's needed from glibc (apart from the headers) other than the files in the base dsl in order to be able to compile properly. Using a test from lfs on the compile-3.3.5 extension, I get this:
Code Sample
$ echo 'main(){}' > dummy.c
$ gcc dummy.c -Wl,--verbose 2>&1 | grep succeeded
attempt to open /usr/lib/crt1.o succeeded
attempt to open /ramdisk/opt/compile-3.3.5/bin/../lib/gcc-lib/i486-pc-linux-gnu/3.3.5/../../../crti.o succeeded
attempt to open /ramdisk/opt/compile-3.3.5/bin/../lib/gcc-lib/i486-pc-linux-gnu/3.3.5/crtbegin.o succeeded
attempt to open /tmp/cc1zWsiJ.o succeeded
attempt to open /ramdisk/opt/compile-3.3.5/bin/../lib/gcc-lib/i486-pc-linux-gnu/3.3.5/libgcc.a succeeded
attempt to open /ramdisk/opt/compile-3.3.5/bin/../lib/gcc-lib/i486-pc-linux-gnu/3.3.5/../../../libgcc_s.so succeeded
attempt to open /ramdisk/opt/compile-3.3.5/bin/../lib/gcc-lib/i486-pc-linux-gnu/3.3.5/../../../libc.so succeeded [link to /usr/lib]
attempt to open /lib/libc.so.6 succeeded
attempt to open /usr/lib/libc_nonshared.a succeeded
attempt to open /ramdisk/opt/compile-3.3.5/bin/../lib/gcc-lib/i486-pc-linux-gnu/3.3.5/libgcc.a succeeded
attempt to open /ramdisk/opt/compile-3.3.5/bin/../lib/gcc-lib/i486-pc-linux-gnu/3.3.5/../../../libgcc_s.so succeeded
attempt to open /ramdisk/opt/compile-3.3.5/bin/../lib/gcc-lib/i486-pc-linux-gnu/3.3.5/crtend.o succeeded
attempt to open /ramdisk/opt/compile-3.3.5/bin/../lib/gcc-lib/i486-pc-linux-gnu/3.3.5/../../../crtn.o succeeded

Now if I remove the following files:

/opt/compile-3.3.5/lib/crti.o
/opt/compile-3.3.5/lib/crtn.o
/opt/compile-3.3.5/lib/libc.so [symlink to /usr/lib]

I get this:
Code Sample
$ gcc dummy.c -Wl,--verbose 2>&1 | grep succeeded
attempt to open /usr/lib/crt1.o succeeded
attempt to open /usr/lib/crti.o succeeded
attempt to open /ramdisk/opt/compile-3.3.5/bin/../lib/gcc-lib/i486-pc-linux-gnu/3.3.5/crtbegin.o succeeded
attempt to open /tmp/ccE4Buk4.o succeeded
attempt to open /ramdisk/opt/compile-3.3.5/bin/../lib/gcc-lib/i486-pc-linux-gnu/3.3.5/libgcc.a succeeded
attempt to open /ramdisk/opt/compile-3.3.5/bin/../lib/gcc-lib/i486-pc-linux-gnu/3.3.5/../../../libgcc_s.so succeeded
attempt to open /usr/lib/libc.so succeeded
attempt to open /lib/libc.so.6 succeeded
attempt to open /usr/lib/libc_nonshared.a succeeded
attempt to open /ramdisk/opt/compile-3.3.5/bin/../lib/gcc-lib/i486-pc-linux-gnu/3.3.5/libgcc.a succeeded
attempt to open /ramdisk/opt/compile-3.3.5/bin/../lib/gcc-lib/i486-pc-linux-gnu/3.3.5/../../../libgcc_s.so succeeded
attempt to open /ramdisk/opt/compile-3.3.5/bin/../lib/gcc-lib/i486-pc-linux-gnu/3.3.5/crtend.o succeeded
attempt to open /usr/lib/crtn.o succeeded

...which would tend to suggest that nothing from glibc (apart from the headers) other than what is already in the base dsl is required to compile. I'd appreciate it if anyone could comment on the correctness or otherwise of this statement  :)

Posted by roberts on July 19 2008,22:56
Thanks to Juanito an update:
Code Sample
Title:          compile-3.3.5.uci
Description:    compile environment for dsl
Version:        3.3.5
Author:         see list of sites below
Original-site:  see list of sites below
Copying-policy: GPL/GPLv2/GPLv3
-----==[  Color = green     Filesize:   13.7MB  ]==-----
Extension by:   juanito
Comments:       Compile environment for dsl based on gcc-3.3.5
               The compile environment was itself compiled on dsl for i486 and the applications used
               (as far as was possible) are those used for the base version of dsl.
               ----------
               Since dsl has three versions of libpng a choice needs to be made as to which
               versions of headers/pkgconfig to use. Links have been placed in /tmp that point
               to the most recent version of libpng - modify these links if you wish to compile
               based on an older version of png.
               ----------
               To use this compile environment, do something like this:
               $ export CPPFLAGS=-I/opt/compile-3.3.5/include
               $ ./configure --prefix=...
               $ make
               # make install (you will need to do this from a separate aterm opened as root)
               Note that the above approach will not work when compiling the full kernel sources.
               You will have to manually link /usr/include -> /opt/compile-3.3.5/include and also
               add  #include <sys/param.h>  at the beginning of ../scripts/mkdep.c to be able to "make dep"
               ----------
               Note also that the recommended version of gcc to use when compiling the kernel
               and/or modules for 2.4.26 or 2.4.31 is gcc-2.95.3
               This being said, I have not seen any problems compiling modules with gcc-3.3.5
               ----------
               If you see strange errors when compiling things like glib2, try this:
               $ cp -a /opt/compile-3.3.5/include /opt
               $ export CPPFLAGS=-I/opt/include
               [thanks to ^thehatsrule^]
               ----------
               This extension contains (headers, some libs and some executables from):
               autoconf-2.62 - http://ftp.gnu.org/gnu/autoconf/
               automake-1.7 - http://ftp.gnu.org/gnu/automake/
               automake-1.85 - http://ftp.gnu.org/gnu/automake/
               automake-1.9 - http://ftp.gnu.org/gnu/automake/
               automake-1.10.1  -  http://ftp.gnu.org/gnu/automake/
               binutils-2.15 - http://ftp.gnu.org/gnu/binutils/
               bison-2.3 (1.875d required to compile xfree86-4.2.1) - http://ftp.gnu.org/gnu/bison/
               bzip2-1.0.2 - http://sources.redhat.com/bzip2
               curl-7.9.5 - http://curl.haxx.se
               expat-2.0.1 - http://expat.sourceforge.net/
               flex-2.5.35 (2.5.4 required to compile xfree86-4.2.1) - http://flex.sourceforge.net
               fontconfig-2.2.1 - http://www.fontconfig.org/
               freetype-2.1.5 - http://www.freetype.org/
               gcc-core-3.3.5 - http://ftp.gnu.org/gnu/gcc/
               gcc-g3.3.5 - http://ftp.gnu.org/gnu/gcc/
               gettext-0.14.4 - http://ftp.gnu.org/gnu/gettext/
               glib-1.2.10 - http://www.gtk.org/
               glibc-2.3.2-sscanf-1.patch - http://ftp.gnu.org/gnu/gettext/
               glibc-2.3.2 - http://ftp.gnu.org/gnu/gettext/
               glibc-linuxthreads-2.3.2 - http://ftp.gnu.org/gnu/gettext/
               gtk+-1.2.10 - http://www.gtk.org/
               linux-2.4.26 sources - http://kernel.org
               libpng-1.0.12 - http://www.libpng.org/
               libpng-1.0.15 - http://www.libpng.org/
               libpng-1.2.5 - http://www.libpng.org/
               libtool-1.5.6 - http://ftp.gnu.org/gnu/libtool/
               m4-1.4.11 - http://ftp.gnu.org/gnu/m4/
               make-3.81 - http://ftp.gnu.org/gnu/make/
               ncurses-5.4 - http://ftp.gnu.org/gnu/ncurses/
               openssl-0.9.7a - http://www.openssl.org/
               patch-2.5.9 - http://ftp.gnu.org/gnu/patch/
               pkg-config-0.23 - http://pkgconfig.freedesktop.org/
               popt-1.7-5 - ftp://ftp.rpm.org/pub/rpm/dist/rpm-4.1.x/
               readline-4.3 (+patches 0-5) - http://ftp.gnu.org/gnu/readline/
               texinfo-4.9 - http://ftp.gnu.org/gnu/texinfo/
               tiff-v3.3.7 - ftp://ftp.sgi.com/graphics/tiff/
               xfree86-4.2.1 - http://www.xfree86.org
               zlib-1.1.4 - http://www.zlib.net/
Change-log:     first version 2007/10/31
               Added headers/libs for openssl & readline
               Removed executables in sbin
               Added symlinks in /opt/bin
               2007/11/22
               Added automake-1.9
               Removed /ramdisk from symlinks
               2007/12/02
               Added headers/libs for fontconfig
               Added symlink ../lib/libpng.so & libpng.so.2
               2007/12/15
               Moved ../X11R6/lib/libGL to ../lib
               Replaced Xlibs with symlink to base dsl libs
               Added headers/libs for popt-1.7 patched to popt-1.7-5
               2008/01/26
               Added back missing openssl headers & lib symlinks
               2008/02/10
               Removed /KNOPPIX from symlinks
               Added automake-1.7 & automake-1.10.1
               Updated autoconf, bison, expat, flex, m4, make, pkg-config & texinfo
               Added flex wrapper for lex
               2008/04/14
               Fixed libpopt symlink
               Added headers/libs for bzip2 & curl
               2008/05/10
               Correct ^hats^ suggestion above and adjusted gcc specs file
Current:        2008/07/19

Posted by Juanito on July 20 2008,03:47
After adjusting the gcc specs file, I no longer get "PATH_MAX" or similar errors when compiling things like glib2 so hopefully this particular error has gone away...
Posted by WDef on July 25 2008,23:21
Great!
Posted by Juanito on Nov. 01 2008,13:28
Ref ^thehatsrule^ :
Quote
Side note (Juanito): compile-3.3.5 has /tmp/{png,pngconf}.h points to libpng2's and not libpng12's; In .../include libpng points to libpng2 whereas in .../lib/pkgconfig libpng.pc points to libpng12.pc.  I'm wondering if there's some sort of disrepancy here.

The original idea was to enable the user the choice of selecting which libpng to compile against using /tmp to switch. Perhaps now, several years on, everybody would want to compile against the most recent libpng.

Any comments, should I only include devs for the most recent libpng?

Posted by mikshaw on Nov. 02 2008,00:24
Quote
Perhaps now, several years on, everybody would want to compile against the most recent libpng.
If that were the case, consider using libpng3 instead of libpng2.

Personally I haven't seen any problems with using libpng12 with the applications I've built for DSL.  My guess is that newer libs fix problems, but they appear to not be show stoppers.  If you were to include only the newer png in compile-3.3.5, would that mean packages would need to include a png library either dynamic or built-in?

Posted by Juanito on Nov. 02 2008,07:21
Quote
If that were the case, consider using libpng3 instead of libpng2

Well OK, but the idea behind compile-3.3.5 was only to provide devs for items in the base dsl...

Looking at the various files in the base:
Code Sample
$ ls -l /usr/lib/libpng*
lrwxrwxrwx    1 root     root           18 Feb 19  2008 /usr/lib/libpng.so.2 -> libpng.so.2.1.0.12
-rw-r--r--    1 root     root       175132 Jun 25  2005 /usr/lib/libpng.so.2.1.0.12
lrwxrwxrwx    1 root     root           20 Feb 19  2008 /usr/lib/libpng10.so.0 -> libpng10.so.0.1.0.15
-rw-r--r--    1 root     root       130244 Jun 25  2005 /usr/lib/libpng10.so.0.1.0.15
lrwxrwxrwx    1 root     root           19 Feb 19  2008 /usr/lib/libpng12.so.0 -> libpng12.so.0.1.2.5
-rw-r--r--    1 root     root       134384 Jun 25  2005 /usr/lib/libpng12.so.0.1.2.5

In terms of age from oldest to most recent, I have a feeling it goes libpng10.so.0.1.0.15 -> libpng.so.2.1.0.12 -> libpng12.so.0.1.2.5 based on the dates of the source tarballs in various archives, but I could easily be wrong.

Looking at the files in compile-3.3.5.uci:
Code Sample
$ ls -l /opt/compile-3.3.5/include/libpng*
/opt/compile-3.3.5/include/libpng [-> /opt/compile-3.3.5/include/libpng2]

/opt/compile-3.3.5/include/libpng10:
png.h
pngconf.h

/opt/compile-3.3.5/include/libpng12:
png.h
pngconf.h

/opt/compile-3.3.5/include/libpng2:
png.h
pngconf.h

$ ls -l /opt/compile-3.3.5/include/png*
lrwxrwxrwx    1 root     staff          10 May 10 17:59 /opt/compile-3.3.5/include/png.h -> /tmp/png.h
lrwxrwxrwx    1 root     staff          14 May 10 17:59 /opt/compile-3.3.5/include/pngconf.h -> /tmp/pngconf.h

$ ls -l /tmp/png*
lrwxrwxrwx    1 root     root           40 Nov  2 10:29 /tmp/png.h -> /opt/compile-3.3.5/include/libpng2/png.h
lrwxrwxrwx    1 root     root           44 Nov  2 10:29 /tmp/pngconf.h -> /opt/compile-3.3.5/include/libpng2/pngconf.h


$ ls -l /opt/compile-3.3.5/lib/pkgconfig/libpng*
lrwxrwxrwx    1 root     staff          11 Jul 19 16:06 /opt/compile-3.3.5/lib/pkgconfig/libpng.pc -> libpng12.pc
-rw-r--r--    1 root     staff         247 Jul 19 16:06 /opt/compile-3.3.5/lib/pkgconfig/libpng10.pc
-rw-r--r--    1 root     staff         246 Jul 19 16:06 /opt/compile-3.3.5/lib/pkgconfig/libpng12.pc


To summarise, I see two options:

1. Eliminate the devs for all but one libpng - libpng12/libpng2?
2. Keep the devs for all three libpng, but tidy things up so everything points to the same version of libpng - libpng12/libpng2? Note that I should probably create a libpng2.pc, compiling libpng2 did not produce a pc file...

Suggestions?

Posted by mikshaw on Nov. 02 2008,14:15
Quote
Quote
If that were the case, consider using libpng3 instead of libpng2


Well OK, but the idea behind compile-3.3.5 was only to provide devs for items in the base dsl...

Oh, that's sensible...I didn't notice that libpng2 was in DSL base....maybe that's why I hadn't had any issues =o)

Posted by ^thehatsrule^ on Nov. 06 2008,03:11
Originally I pointed this out because there were different libpng related symlinks in /tmp pointing to 2 different versions by default... but I'm guessing that's because libpng2 was made to the default but did not have the newer config tools, etc. that libpng12 has.  I would vote for libpng12 being the default, but I have no idea if that would cause more problems or not.  I've just had a couple libpng related problems in the past...
Powered by Ikonboard 3.1.2a
Ikonboard © 2001 Jarvis Entertainment Group, Inc.