The following is a followup to my build of perl 5.001m on Solaris 2.4 with
no patches. As some of you know I was experiencing several difficulties. As
it turns out, I have repeatedly built the program in order to compose this
summary for the benefit of those that care. I'll try to make this short.
First off, big thanks to Tye McQueen <tye@metronet.com> for the
perl-mantra. This should be in the README if not already there. I didn't
see it.
make distclean
mv -f config.sh config.sh.old
./Configure -des
make all
make test
This helped me determine the minimum Configure options to produce a working
perl binary toolset. From there I built a command to yield a desired
configuration; it looked like this:
sh Configure \
-des \
-Dcc=gcc \
-Dprefix=/opt/sww \
-Dccflags="-I/opt/sww/include" \
-Dlibs="-lsocket -lnsl -ldl -lm -lc -lcrypt -ldb" \
-Dlibpth="/opt/sww/lib /lib /usr/lib /usr/ccs/lib" \
-Dman1dir="/opt/sww/man/man1" \
-Dman3dir="/opt/sww/man/man3"
I was having some difficulty with the lib stuff. The smart thing to have
done was to write this summary the moment I figured what I was doing wrong.
I didn't so some of the issues I was having with libraries have been lost.
Two things I noticed:
o If you mv config.sh to another filename, then 'make distclean' fails and
doesn't complete the cleaning process. Also, regarding the perl mantra, it
seems that 'make distclean' wants to remove the file, "config.sh". (Is
there another reason why 'make distclean' would fail when config.sh was not
found?) Therefore, it may be too late to save config.sh after 'make
distclean'.
o gcc versus SunC3.0.1: I built on two different machines each with a
different compiler environment. The SPARCworks machine is where I applied
the perl-mantra, allowing me to determine the baseline "Configure" command
to be later expanded for the gcc-based machine. I noticed the gcc binaries
were smaller and a bit faster than the SunC built versions. In fact, the
tests ran about 5-10% faster. Is this suprising? Are gnu compilers that are
freely available better than SPARCworks compilers that cost big bucks?
Two recommednations:
o In the Config process it would be nice to be able to append a library
without *knowing* the defaults. For example, I didn't know the default for
the lib variable was:
libs="-lsocket -lnsl -ldl -lm -lc -lcrypt"
So, for example, to add the db library I need to run the perl-mantra,
examine the default value of the lib variable. Then, 'make distclean', then
re-run Configure with the option:
-Dlibs="-lsocket -lnsl -ldl -lm -lc -lcrypt -ldb"
o Decide what the 'make distclean' is going to do. Above I mentioned that
it failed when the file "config.sh" was not found. This is a fact. Then,
when I leave the file there and run 'make distclean', the dist is cleaned
up properly and an informative message is displayed towrds the end. It says
that "config.sh" is not removed and one should be aware of this. Well, on
my system, a subsequent 'ls' displays *no* "config.sh" file! Therefore, the
'mv -f config.sh config.sh.old' command in the perl-mantra did not work.
Thank You
---------
I want to thank the following people that came to my aid. I really
appreciate the time you took from your day to help me. I hope this feedback
is useful to those who care about these sorts of build issues and that some
improvements are made to an already decent and complex system.
Special thanks to:
Tom Christiansen <tchrist@mox.perl.com>
Andy Dougherty <doughera@lafcol.lafayette.edu>
Tye McQueen <tye@metronet.com>
Raphael Manfredi <ram@hptnos02.grenoble.hp.com>
Dean Roehrich <roehrich@ironwood.cray.com>
Gurusamy Sarathy <gsar@engin.umich.edu>
If there is someone I failed to thank, then it was unintentional. Things
are quite busy. I did the best I could to remember.
dk
--
dks@spies.com | Performance is life, entertainment is death.
no patches. As some of you know I was experiencing several difficulties. As
it turns out, I have repeatedly built the program in order to compose this
summary for the benefit of those that care. I'll try to make this short.
First off, big thanks to Tye McQueen <tye@metronet.com> for the
perl-mantra. This should be in the README if not already there. I didn't
see it.
make distclean
mv -f config.sh config.sh.old
./Configure -des
make all
make test
This helped me determine the minimum Configure options to produce a working
perl binary toolset. From there I built a command to yield a desired
configuration; it looked like this:
sh Configure \
-des \
-Dcc=gcc \
-Dprefix=/opt/sww \
-Dccflags="-I/opt/sww/include" \
-Dlibs="-lsocket -lnsl -ldl -lm -lc -lcrypt -ldb" \
-Dlibpth="/opt/sww/lib /lib /usr/lib /usr/ccs/lib" \
-Dman1dir="/opt/sww/man/man1" \
-Dman3dir="/opt/sww/man/man3"
I was having some difficulty with the lib stuff. The smart thing to have
done was to write this summary the moment I figured what I was doing wrong.
I didn't so some of the issues I was having with libraries have been lost.
Two things I noticed:
o If you mv config.sh to another filename, then 'make distclean' fails and
doesn't complete the cleaning process. Also, regarding the perl mantra, it
seems that 'make distclean' wants to remove the file, "config.sh". (Is
there another reason why 'make distclean' would fail when config.sh was not
found?) Therefore, it may be too late to save config.sh after 'make
distclean'.
o gcc versus SunC3.0.1: I built on two different machines each with a
different compiler environment. The SPARCworks machine is where I applied
the perl-mantra, allowing me to determine the baseline "Configure" command
to be later expanded for the gcc-based machine. I noticed the gcc binaries
were smaller and a bit faster than the SunC built versions. In fact, the
tests ran about 5-10% faster. Is this suprising? Are gnu compilers that are
freely available better than SPARCworks compilers that cost big bucks?
Two recommednations:
o In the Config process it would be nice to be able to append a library
without *knowing* the defaults. For example, I didn't know the default for
the lib variable was:
libs="-lsocket -lnsl -ldl -lm -lc -lcrypt"
So, for example, to add the db library I need to run the perl-mantra,
examine the default value of the lib variable. Then, 'make distclean', then
re-run Configure with the option:
-Dlibs="-lsocket -lnsl -ldl -lm -lc -lcrypt -ldb"
o Decide what the 'make distclean' is going to do. Above I mentioned that
it failed when the file "config.sh" was not found. This is a fact. Then,
when I leave the file there and run 'make distclean', the dist is cleaned
up properly and an informative message is displayed towrds the end. It says
that "config.sh" is not removed and one should be aware of this. Well, on
my system, a subsequent 'ls' displays *no* "config.sh" file! Therefore, the
'mv -f config.sh config.sh.old' command in the perl-mantra did not work.
Thank You
---------
I want to thank the following people that came to my aid. I really
appreciate the time you took from your day to help me. I hope this feedback
is useful to those who care about these sorts of build issues and that some
improvements are made to an already decent and complex system.
Special thanks to:
Tom Christiansen <tchrist@mox.perl.com>
Andy Dougherty <doughera@lafcol.lafayette.edu>
Tye McQueen <tye@metronet.com>
Raphael Manfredi <ram@hptnos02.grenoble.hp.com>
Dean Roehrich <roehrich@ironwood.cray.com>
Gurusamy Sarathy <gsar@engin.umich.edu>
If there is someone I failed to thank, then it was unintentional. Things
are quite busy. I did the best I could to remember.
dk
--
dks@spies.com | Performance is life, entertainment is death.