Re: Make world failing in perl

1999-05-06 Thread Yasuhiro Fukuma
Hi,

In the article 199905031757.kaa40...@mrynet.com,
free...@mrynet.com (FreeBSD mailing list) wrote:

 Perl is failing due to some kind of conflict in library versions:
 
 miniperl -I/usr/obj/usr/src/gnu/usr.bin/perl/perl/lib  -e 'use AutoSplit; 
 autosplit_lib_modules(@ARGV)'  lib/*.pm lib/*/*.pm
 Perl lib version (5.00502) doesn't match executable version (5.00503) at 
 /usr/libdata/perl/5.00503/mach/Config.pm line 7.
 BEGIN failed--compilation aborted at 
 /usr/obj/usr/src/gnu/usr.bin/perl/perl/lib/AutoSplit.pm line 4.
 BEGIN failed--compilation aborted at -e line 1.
 *** Error code 255

I'd had the same problem.

I solved it by installing new miniperl before building perl itself,
but it doesn't seem to be a good idea to use installled (maybe old
version of) miniperl at this point.

I think the attached patch can be a nice solution.
How do you folks feel about that?

---
 Yasuhiro Fukuma (=?ISO-2022-JP?B?GyRCSiE0VhsoQiAbJEI5LzkwGyhC?=)
   as Yasu.F @ Kitakyushu.Fukuoka.Japan
 Web site: http://www8.big.or.jp/~yasuf/
 ``InterNIC is NOT NSI!''
Index: Makefile.inc
===
RCS file: /home/ncvs/src/gnu/usr.bin/perl/Makefile.inc,v
retrieving revision 1.7
diff -u -r1.7 Makefile.inc
--- Makefile.inc1998/10/12 06:00:30 1.7
+++ Makefile.inc1999/05/07 01:01:56
@@ -4,6 +4,8 @@
 
 BINDIR?=   /usr/bin
 
+MINIPERL?= ${.OBJDIR}/../miniperl/miniperl
+
 SHLIB_MAJOR?=  3
 SHLIB_MINOR?=  0
 
Index: libperl/config.SH-aout.i386
===
RCS file: /home/ncvs/src/gnu/usr.bin/perl/libperl/config.SH-aout.i386,v
retrieving revision 1.12
diff -u -r1.12 config.SH-aout.i386
--- config.SH-aout.i386 1999/05/05 19:09:48 1.12
+++ config.SH-aout.i386 1999/05/06 19:10:43
@@ -418,7 +418,7 @@
 libc='undef'
 libperl='libperl.so.3.0'
 libpth='/usr/lib/aout'
-libs='-lm -lc -lcrypt'
+libs='-lxpg4 -lm -lc -lcrypt'
 libswanted='sfio socket inet nsl nm ndbm gdbm dbm db dl dld ld sun m c cposix 
posix ndir dir crypt ucb bsd BSD PW x'
 line='line'
 lint=''
Index: libperl/config.SH-elf.alpha
===
RCS file: /home/ncvs/src/gnu/usr.bin/perl/libperl/config.SH-elf.alpha,v
retrieving revision 1.13
diff -u -r1.13 config.SH-elf.alpha
--- config.SH-elf.alpha 1999/05/05 19:09:48 1.13
+++ config.SH-elf.alpha 1999/05/06 19:10:44
@@ -417,7 +417,7 @@
 libc='/usr/lib/libc.so'
 libperl='libperl.so.3'
 libpth='/usr/lib'
-libs='-lm -lc -lcrypt'
+libs='-lxpg4 -lm -lc -lcrypt'
 libswanted='sfio socket inet nsl nm ndbm gdbm dbm db dl dld ld sun m c cposix 
posix ndir dir crypt ucb bsd BSD PW x'
 line='line'
 lint=''
Index: libperl/config.SH-elf.i386
===
RCS file: /home/ncvs/src/gnu/usr.bin/perl/libperl/config.SH-elf.i386,v
retrieving revision 1.12
diff -u -r1.12 config.SH-elf.i386
--- config.SH-elf.i386  1999/05/05 19:09:48 1.12
+++ config.SH-elf.i386  1999/05/06 19:10:44
@@ -417,7 +417,7 @@
 libc='/usr/lib/libc.so'
 libperl='libperl.so.3'
 libpth='/usr/lib'
-libs='-lm -lc -lcrypt'
+libs='-lxpg4 -lm -lc -lcrypt'
 libswanted='sfio socket inet nsl nm ndbm gdbm dbm db dl dld ld sun m c cposix 
posix ndir dir crypt ucb bsd BSD PW x'
 line='line'
 lint=''
Index: miniperl/Makefile
===
RCS file: /home/ncvs/src/gnu/usr.bin/perl/miniperl/Makefile,v
retrieving revision 1.7
diff -u -r1.7 Makefile
--- Makefile1998/10/11 18:13:41 1.7
+++ Makefile1999/03/25 12:20:34
@@ -9,7 +9,7 @@
 # Miniperl _must_ be static!!
 NOSHARED= yes
 DPADD= ${LIBPERL} ${LIBM} ${LIBCRYPT}
-LDADD= -lperl -lm -lcrypt
+LDADD= -lperl -lxpg4 -lm -lcrypt
 
 # Trick the bootstrap tools into thinking that miniperl is perl.
 # This gets overwritten.
Index: perl/Makefile
===
RCS file: /home/ncvs/src/gnu/usr.bin/perl/perl/Makefile,v
retrieving revision 1.17
diff -u -r1.17 Makefile
--- Makefile1999/05/02 15:29:44 1.17
+++ Makefile1999/05/07 01:01:20
@@ -8,7 +8,7 @@
 SRCS=  perlmain.c config.h
 NOSHARED= no
 DPADD= lib/auto/DynaLoader/DynaLoader.a ${LIBPERL} ${LIBM} ${LIBCRYPT}
-LDADD= lib/auto/DynaLoader/DynaLoader.a -lperl -lm -lcrypt
+LDADD= lib/auto/DynaLoader/DynaLoader.a -lperl -lxpg4 -lm -lcrypt
 LINKS= ${BINDIR}/${PROG} ${BINDIR}/perl5 \
${BINDIR}/${PROG} ${BINDIR}/perl5.00503
 
@@ -36,7 +36,7 @@
sh cflags.sh
 
 Config.pm: linkfarm
-   miniperl ${PERL5SRC}/configpm \
+   ${MINIPERL} ${PERL5SRC}/configpm \
Config.pm Porting/Glossary myconfig config.sh
cd lib ; ln -sf ../${.TARGET}
 
@@ -47,7 +47,7 @@
sh writemain.sh
 
 autosplit: linkfarm Config.pm lib/*.pm lib/*/*.pm
-   miniperl -I${.OBJDIR}/lib \
+   ${MINIPERL} -I${.OBJDIR}/lib \
-e 'use AutoSplit; autosplit_lib_modules(@ARGV)' \

Re: Make world failing in perl

1999-05-06 Thread Bruce Evans
I solved it by installing new miniperl before building perl itself,
but it doesn't seem to be a good idea to use installled (maybe old
version of) miniperl at this point.

`make world' is supposed to use the new miniperl that it has just
installed in ${TOOLROOT}/usr/bin which is at the front of $PATH.
There may be a problem with the perl build breaking $PATH so that
the wrong miniperl is found.  There certainly are problems with it
breaking $PATH so that the wrong perl is found (perl is supposed to
be a link to miniperl for `make world').

I think the attached patch can be a nice solution.
How do you folks feel about that?

This breaks cross compiling in much the same way as running perl from
an obj dir breaks it.  The version in the obj might not run on the
host machine.

Bruce


To Unsubscribe: send mail to majord...@freebsd.org
with unsubscribe freebsd-current in the body of the message