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