misc/50994: miniperl is linked with system libraries that breaks cross-build

Eugene Grosbein eugen at grosbein.pp.ru
Tue Apr 15 08:30:14 PDT 2003


>Number:         50994
>Category:       misc
>Synopsis:       miniperl is linked with system libraries that breaks cross-build
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Tue Apr 15 08:30:11 PDT 2003
>Closed-Date:
>Last-Modified:
>Originator:     Eugene Grosbein
>Release:        FreeBSD 4.8-STABLE i386
>Organization:
Svyaz Service JSC
>Environment:
System: FreeBSD grosbein.pp.ru 4.8-STABLE FreeBSD 4.8-STABLE #3: Sun Apr 6 23:20:11 KRAST 2003 eu at grosbein.pp.ru:/usr/local/obj/usr/local/src/sys/DADV i386

>Description:
	I've build a world for i586 using a power build machine 
	(its world itself is optimised for i686).
	miniperl is statically linked with system binaries.
	Here is link command in my case (long line is broken here):

cc -O -pipe -march=pentiumpro -I/usr/local/src/gnu/usr.bin/perl/miniperl
 -I/usr/local/src/gnu/usr.bin/perl/miniperl/../../../../contrib/perl5
 -L/usr/local/src/gnu/usr.bin/perl/miniperl/../libperl -static -o miniperl
 miniperlmain.o perl.o gv.o toke.o perly.o op.o regcomp.o dump.o util.o mg.o
 hv.o av.o run.o pp_hot.o sv.o pp.o scope.o pp_ctl.o pp_sys.o doop.o doio.o
 regexec.o taint.o universal.o globals.o perlio.o -lm -lcrypt

	miniperl crashes with SIGILL later when i586 tries to run
	installworld from NFS-mounted src and obj.

>How-To-Repeat:
	Make build machine with world optimized for i686.
	Make world for i586. Try to install it using i586 from NFS.
	Here are last lines from installworld (cut-n-paste):

===> gnu/usr.bin/perl/library/B
Illegal instruction
*** Error code 132
Stop in /usr/local/obj/usr/local/src/gnu/usr.bin/perl/library/B/ext/B.
*** Error code 1
Stop in /usr/local/src/gnu/usr.bin/perl/library/B.
*** Error code 1
Stop in /usr/local/src/gnu/usr.bin/perl/library.
*** Error code 1
Stop in /usr/local/src/gnu/usr.bin/perl.
*** Error code 1
Stop in /usr/local/src/gnu/usr.bin.
*** Error code 1
Stop in /usr/local/src/gnu.
*** Error code 1
Stop in /usr/local/src.
*** Error code 1
Stop in /usr/local/src.
*** Error code 1
Stop in /usr/local/src.
*** Error code 1
Stop in /usr/local/src.

>Fix:

	I guess, needed statis libraries (*.a) must be 
	included in a link command in src/gnu/usr.bin/perl/miniperl/Makefile
	to allow cross-installation.

Eugene Grosbein
>Release-Note:
>Audit-Trail:
>Unformatted:


More information about the freebsd-bugs mailing list