devel/p5-version build issues

Jason Helfman jhelfman at e-e.com
Wed Jul 14 14:22:40 EDT 2010


Good Afternoon, All.

I was hoping that someone would be able to build "devel/p5-version" and look
at the output of the Makefile within /usr/ports/devel/p5-version when the
port is being built?
(/usr/ports/devel/p5-version/work/version-0.82/Makefile)

I've tried building in a 7.3 jail against perl 5.10, and everytime it is
built the Makefile that is used from "perl Makefile.PL" notes that it will
build against perl version 5.8.8 and the operating system version is:

OSVERS= 7.0-release

I am not certain how this is the case, but it is.  I've tried two things to 
get this to work:

I've added a hook to append to the /etc/make.conf within the chroot of the
build environment for this particular jail:

if [ ${BUILD} = "7.3-RELEASE-postgreSQL" ]; then
   echo "PERL_VER=5.10" >> ${CHROOT}/etc/make.conf
   echo "PERL_VERSION=5.10" >> ${CHROOT}/etc/make.conf
fi

[me at host /usr/local/tinderbox/scripts/etc/env]$ cat build.7.3-RELEASE-postgreSQL
PERL_VER=5.10
PERL_VERSION=5.10

When I tried either one of these solutions, the other was not in place. Both
failed to build using perl5.10 and didn't find the correct version of
FreeBSD in using perl.

I've included our findings "dev.txt"

Thanks,
Jason
-------------- next part --------------
building p5-version-0.82 in directory /usr/local/tinderbox/7.3-RELEASE-GENERIC
build started at Fri Jun 25 18:04:28 UTC 2010
port directory: /usr/ports/devel/p5-version
building for:  7.3-RELEASE amd64
maintained by: clsung at FreeBSD.org
Makefile ident: $FreeBSD: ports/devel/p5-version/Makefile,v 1.36 2010/04/22 00:44:06 clsung Exp $
prefixes: LOCALBASE=usr/local PREFIX=/usr/local
Begin Configuration:
---Begin Environment---
ARCH=amd64
PACKAGE_BUILDING=1
USER=root
CCACHE_DIR=
BRANCH=RELEASE
CCACHE_NOLINK=1
HOST_WORKDIR=
BATCH=1
OLDPWD=/
HOME=/root
LOG_DIRECTORY=
LOG_DOCOPY=0
PKGZIPCMD=bzip2
HAVE_MOTIF=1
FTP_TIMEOUT=900
HTTP_TIMEOUT=900
defaultUpdateHost=cvsup5.freebsd.org
pb=/usr/local/tinderbox
DISTFILE_CACHE=/usr/ports/distfiles
OSREL=7.3
defaultUpdateType=CSUP
TINDERD_LOGFILE=/dev/null
PORTOBJFORMAT=elf
WRKDIRPREFIX=/work
DISTDIR=/tmp/distfiles
DISTCACHE=/distcache
CCACHE_LOGFILE=
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin
PACKAGES=/tmp/packages
TIMEOUT=7200
PKGSUFFIX=.tbz
OSVERSION=703000
OPTIONS_ENABLED=1
__DSVERSION__=3.2.1
TINDERD_SLEEPTIME=120
UNAME_n=tinderbox.host
__MKLVL__=1
CCACHE_JAIL=0
LOCALBASE=/usr/local
PORT_DBDIR=/var/db/ports
CCACHE_MAX_SIZE=1G
DISTFILE_URI=
X_WINDOW_SYSTEM=xorg
MASTER_SITE_OVERRIDE=file:///distcache/${DIST_SUBDIR}/ 
OPTIONS_DIR=/options
UNAME_r=7.3-RELEASE
USA_RESIDENT=YES
UNAME_s=FreeBSD
PARALLEL_PACKAGE_BUILD=1
PWD=/usr/ports/devel/p5-version
UNAME_v=FreeBSD 7.3-RELEASE #0: Fri Jun 25 10:41:36 PDT 2010    root at tinderbox.host:/usr/src/sys/magic/kernel/path
FTP_PASSIVE_MODE=yes
CCACHE_ENABLED=0
INDEXFILE=INDEX-7
---End Environment---

---Begin OPTIONS List---
---End OPTIONS List---

End Configuration.
FETCH_DEPENDS=
PATCH_DEPENDS=perl-5.10.1_1.tbz
EXTRACT_DEPENDS=perl-5.10.1_1.tbz
BUILD_DEPENDS=perl-5.10.1_1.tbz
RUN_DEPENDS=perl-5.10.1_1.tbz
add_pkg
================================================================
====================<phase 1: make checksum>====================
=> version-0.82.tar.gz doesn't seem to exist in /tmp/distfiles/.
=> Attempting to fetch from file:///distcache//.
fetch: file:///distcache//version-0.82.tar.gz: No such file or directory
=> Attempting to fetch from ftp://ftp.funet.fi/pub/languages/perl/CPAN/modules/by-module/../by-authors/id/J/JP/JPEACOCK/.
version-0.82.tar.gz                                     98 kB   51 kBps
=> MD5 Checksum OK for version-0.82.tar.gz.
=> SHA256 Checksum OK for version-0.82.tar.gz.
================================================================
====================<phase 2: make extract>====================
add_pkg perl-5.10.1_1.tbz
adding dependencies
pkg_add perl-5.10.1_1.tbz
Removing stale symlinks from /usr/bin...
    Skipping /usr/bin/perl
    Skipping /usr/bin/perl5
Done.
Creating various symlinks in /usr/bin...
    Symlinking /usr/local/bin/perl5.10.1 to /usr/bin/perl
    Symlinking /usr/local/bin/perl5.10.1 to /usr/bin/perl5
Done.
Cleaning up /etc/make.conf... Done.
Spamming /etc/make.conf... Done.
Cleaning up /etc/manpath.config... Done.
Spamming /etc/manpath.config... Done.
===>  Extracting for p5-version-0.82
=> MD5 Checksum OK for version-0.82.tar.gz.
=> SHA256 Checksum OK for version-0.82.tar.gz.
===>   p5-version-0.82 depends on file: /usr/local/bin/perl5.10.1 - found
Deleting perl-5.10.1_1
Removing stale symlinks from /usr/bin...
    Removing /usr/bin/perl
    Removing /usr/bin/perl5
Done.
Cleaning up /etc/make.conf... Done.
Cleaning up /etc/manpath.config... Done.
================================================================
====================<phase 3: make patch>====================
add_pkg perl-5.10.1_1.tbz
adding dependencies
pkg_add perl-5.10.1_1.tbz
Removing stale symlinks from /usr/bin...
    Skipping /usr/bin/perl
    Skipping /usr/bin/perl5
Done.
Creating various symlinks in /usr/bin...
    Symlinking /usr/local/bin/perl5.10.1 to /usr/bin/perl
    Symlinking /usr/local/bin/perl5.10.1 to /usr/bin/perl5
Done.
Cleaning up /etc/make.conf... Done.
Spamming /etc/make.conf... Done.
Cleaning up /etc/manpath.config... Done.
Spamming /etc/manpath.config... Done.
===>  Patching for p5-version-0.82
===>   p5-version-0.82 depends on file: /usr/local/bin/perl5.10.1 - found
Deleting perl-5.10.1_1
Removing stale symlinks from /usr/bin...
    Removing /usr/bin/perl
    Removing /usr/bin/perl5
Done.
Cleaning up /etc/make.conf... Done.
Cleaning up /etc/manpath.config... Done.
================================================================
====================<phase 4: make build>====================
add_pkg perl-5.10.1_1.tbz
adding dependencies
pkg_add perl-5.10.1_1.tbz
Removing stale symlinks from /usr/bin...
    Skipping /usr/bin/perl
    Skipping /usr/bin/perl5
Done.
Creating various symlinks in /usr/bin...
    Symlinking /usr/local/bin/perl5.10.1 to /usr/bin/perl
    Symlinking /usr/local/bin/perl5.10.1 to /usr/bin/perl5
Done.
Cleaning up /etc/make.conf... Done.
Spamming /etc/make.conf... Done.
Cleaning up /etc/manpath.config... Done.
Spamming /etc/manpath.config... Done.
===>   p5-version-0.82 depends on file: /usr/local/bin/perl5.10.1 - found
===>  Configuring for p5-version-0.82
Testing if you have a C compiler
Checking if your kit is complete...
Looks good
Writing Makefile for version::vxs
Writing Makefile for version
===>  Building for p5-version-0.82
cp lib/version/Internals.pod blib/lib/version/Internals.pod
cp lib/version.pm blib/lib/version.pm
cp lib/version.pod blib/lib/version.pod
cp lib/version/vxs.pm ../blib/lib/version/vxs.pm
cc -c    -DAPPLLIB_EXP="/usr/local/lib/perl5/5.10.1/BSDPAN" -DHAS_FPSETMASK -DHAS_FLOATINGPOINT_H -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include -O2 -fno-strict-aliasing -pipe    -DVERSION=\"0.82\"  -DXS_VERSION=\"0.82\" -DPIC -fPIC "-I/usr/local/lib/perl5/5.10.1/mach/CORE"   vutil.c
/usr/local/bin/perl5.10.1 /usr/local/lib/perl5/5.10.1/ExtUtils/xsubpp  -typemap /usr/local/lib/perl5/5.10.1/ExtUtils/typemap -typemap ../lib/version/typemap  vxs.xs > vxs.xsc && mv vxs.xsc vxs.c
cc -c    -DAPPLLIB_EXP="/usr/local/lib/perl5/5.10.1/BSDPAN" -DHAS_FPSETMASK -DHAS_FLOATINGPOINT_H -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include -O2 -fno-strict-aliasing -pipe    -DVERSION=\"0.82\"  -DXS_VERSION=\"0.82\" -DPIC -fPIC "-I/usr/local/lib/perl5/5.10.1/mach/CORE"   vxs.c
Running Mkbootstrap for version::vxs ()
chmod 644 vxs.bs
rm -f ../blib/arch/auto/version/vxs/vxs.so
cc  -shared  -L/usr/local/lib -fstack-protector vutil.o  vxs.o  -o ../blib/arch/auto/version/vxs/vxs.so 	    	 
chmod 755 ../blib/arch/auto/version/vxs/vxs.so
cp vxs.bs ../blib/arch/auto/version/vxs/vxs.bs
chmod 644 ../blib/arch/auto/version/vxs/vxs.bs
Manifying blib/man3/version::Internals.3
Manifying blib/man3/version.3
================================================================
====================<phase 5: make test>====================
make: don't know how to make regression-test(continuing)
================================================================
====================<phase 6: make install>====================
add_pkg perl-5.10.1_1.tbz
adding dependencies
pkg_add perl-5.10.1_1.tbz
skipping perl-5.10.1_1, already added
===>  Installing for p5-version-0.82
===>   p5-version-0.82 depends on file: /usr/local/bin/perl5.10.1 - found
===>   Generating temporary packing list
===>  Checking if devel/p5-version already installed
Files found in blib/arch: installing files in blib/lib into architecture dependent library tree
Installing /usr/local/lib/perl5/site_perl/5.10.1/mach/auto/version/vxs/vxs.so
Installing /usr/local/lib/perl5/site_perl/5.10.1/mach/auto/version/vxs/vxs.bs
Installing /usr/local/lib/perl5/site_perl/5.10.1/mach/version.pm
Installing /usr/local/lib/perl5/site_perl/5.10.1/mach/version.pod
Installing /usr/local/lib/perl5/site_perl/5.10.1/mach/version/Internals.pod
Installing /usr/local/lib/perl5/site_perl/5.10.1/mach/version/vxs.pm
Installing /usr/local/lib/perl5/5.10.1/man/man3/version::Internals.3
Installing /usr/local/lib/perl5/5.10.1/man/man3/version.3
===>   Compressing manual pages for p5-version-0.82
===>   Registering installation for p5-version-0.82
================================================================
====================<phase 7: make package>====================
===>  Building package for p5-version-0.82
Creating package /tmp/packages/All/p5-version-0.82.tbz
Registering depends: perl-5.10.1_1.
Creating bzip'd tar ball in '/tmp/packages/All/p5-version-0.82.tbz'
Deleting p5-version-0.82

=== Checking filesystem state
Deleting perl-5.10.1_1
Removing stale symlinks from /usr/bin...
    Removing /usr/bin/perl
    Removing /usr/bin/perl5
Done.
Cleaning up /etc/make.conf... Done.
Cleaning up /etc/manpath.config... Done.

=== Checking filesystem state after all packages deleted
================================================================
build of /usr/ports/devel/p5-version ended at Fri Jun 25 18:06:29 UTC 2010
-------------- next part --------------
Hi Jason,

Here I try and describe what the issue is with the output build from 
tinderbox, as if posting on the tinderbox support list group.

===========

For one, the file size of vxs.so is 3x's larger, leading me to believe 
there are many more differences than the libc.so.7 use of 'free'. The 
version on la.test, with symbol file lister tool 'nm', lists 'U 
Perl_mfree', meaning that undefined symbol is used for free calls 
whereas fbuilder version resolves using /*Perl_safesysfree*/. When 
running a basic perl script that utilizes p5-version, namely a perl 
scripts that accesses a Postgresql DB via p5-DBD-Pg, the run will result 
in signal 'SIGSEGV'.

HTH,
-Jay



[jay at la ~]$ ls -l 
/usr/local/lib/perl5/site_perl/5.10.1/mach/auto/version/vxs/vxs.so
-r-xr-xr-x  1 root  wheel  94687 Jul  6 14:44 
/usr/local/lib/perl5/site_perl/5.10.1/mach/auto/version/vxs/vxs.so
[jay at la ~]$


[jay at builder-freebsd 
/usr/local/tinderbox/packages/7.3-RELEASE-postgreSQL/All]$ ls -l 
lib/perl5/site_perl/5.10.1/mach/auto/version/vxs/vxs.so
-r-xr-xr-x  1 root  wheel  33644 Jul  9 13:32 
lib/perl5/site_perl/5.10.1/mach/auto/version/vxs/vxs.so


[jay at builder-freebsd ~]$ diff -ur /tmp/vsx.so.la.sym 
/tmp/vsx.so.fbuilder.sym
--- /tmp/vsx.so.la.sym    2010-07-09 11:32:16.000000000 -0700
+++ /tmp/vsx.so.fbuilder.sym    2010-07-09 11:31:55.000000000 -0700
@@ -12,7 +12,6 @@
 Perl_av_push
 Perl_call_list
 t Perl_ck_warner
-t Perl_ck_warner
 Perl_ckwarn
 Perl_croak
 Perl_croak_xs_usage
@@ -20,7 +19,6 @@
 Perl_gv_stashsv
 Perl_hv_common
 Perl_hv_common_key_len
/*-Perl_mfree */
 Perl_mg_find
 Perl_newRV_noinc
 Perl_newSV
@@ -33,6 +31,7 @@
 Perl_newXS
 T Perl_new_version2
 T Perl_prescan_version
/*+Perl_safesysfree*/
 Perl_savepv
 Perl_savepvn
 T Perl_scan_version2
@@ -92,10 +91,9 @@
 T _fini
 T _init
 T boot_version__vxs
-b completed.5039
+b completed.5045
 div@@FBSD_1.0
 t frame_dummy
-d p.5037
+d p.5043
 setlocale@@FBSD_1.0
 snprintf@@FBSD_1.0
-strcmp@@FBSD_1.0

[jay at la-dev ~]$ gdb perl
GNU gdb 6.1.1 [FreeBSD]
Copyright 2004 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain 
conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "amd64-marcel-freebsd"...
(gdb) set args pg.pl
(gdb) run
Starting program: /usr/bin/perl pg.pl

Program received signal SIGSEGV, Segmentation fault.
0x0000000800e93bc9 in free () from /lib/libc.so.7
(gdb) backtrace
/*#0  0x0000000800e93bc9 in free () from /lib/libc.so.7
#1  0x000000080074502c in Perl_safesysfree (where=0x788c48) at util.c:262*/
#2  0x00000008016129d4 in Perl_upg_version2 () from 
/usr/local/lib/perl5/site_perl/5.10.1/mach/auto/version/vxs/vxs.so
#3  0x0000000801613a05 in XS_version__vxs_qv () from 
/usr/local/lib/perl5/site_perl/5.10.1/mach/auto/version/vxs/vxs.so
#4  0x0000000800798c42 in Perl_pp_entersub () at pp_hot.c:2888
#5  0x000000080074433c in Perl_runops_debug () at dump.c:1968
#6  0x0000000800690ae8 in S_run_body (oldscope=1) at perl.c:2431
#7  0x000000080068feb0 in perl_run (my_perl=0x801102104) at perl.c:2349
#8  0x0000000000400bf4 in main (argc=2, argv=0x7fffffffeca8, 
env=0x7fffffffecc0) at perlmain.c:117
(gdb)


More information about the tinderbox-list mailing list