Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 130668 - dev-libs/libpcre-6.3 won't compile with MAKEOPTS=-j4
Summary: dev-libs/libpcre-6.3 won't compile with MAKEOPTS=-j4
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: New packages (show other bugs)
Hardware: AMD64 Linux
: Highest normal (vote)
Assignee: Carsten Lohrke (RETIRED)
URL:
Whiteboard:
Keywords:
Depends on: 145409
Blocks:
  Show dependency tree
 
Reported: 2006-04-20 15:18 UTC by Eric Brown
Modified: 2006-09-09 08:02 UTC (History)
7 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
Patch makefile for llel builds. (libpcre-6.3.Makefile.patch,1.22 KB, patch)
2006-04-20 16:11 UTC, Malcolm Lashley (RETIRED)
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Eric Brown 2006-04-20 15:18:44 UTC
My default MAKEOPTS is -j4, and with that setting, emerge libpcre fails on one of the scan unit tests involving the linking of libpcreposix.la.  Here's some of the output:

x86_64-pc-linux-gnu-ar cru .libs/libpcrecpp.a  pcrecpp.o pcre_scanner.o pcre_stringpiece.o
x86_64-pc-linux-gnu-ranlib .libs/libpcrecpp.a
creating libpcrecpp.la
(cd .libs && rm -f libpcrecpp.la && ln -s ../libpcrecpp.la libpcrecpp.la)
/bin/sh ./libtool --mode=link x86_64-pc-linux-gnu-g++  -I. -I.   -o pcre_scanner_unittest  pcre_scanner_unittest.o \
        libpcrecpp.la libpcreposix.la
/bin/sh ./libtool --mode=link x86_64-pc-linux-gnu-g++  -I. -I.   -o pcre_stringpiece_unittest   pcre_stringpiece_unittest.o \
        libpcrecpp.la libpcreposix.la
make: `libpcrecpp.la' is up to date.
libtool: link: cannot find the library `libpcreposix.la'
make: *** [pcre_stringpiece_unittest] Error 1
make: *** Waiting for unfinished jobs....
libtool: link: cannot find the library `libpcreposix.la'
make: *** [pcre_scanner_unittest] Error 1
generating symbol list for `libpcreposix.la'
/usr/bin/x86_64-pc-linux-gnu-nm -B  .libs/pcreposix.o  | sed -n -e 's/^.*[      ]\([ABCDGIRSTW][ABCDGIRSTW]*\)[         ][      ]*\([_A-Za-z][_A-Za-z0-9]*\)$/\1 \2 \2/p' | /bin/sed 's/.* //' | sort | uniq > .libs/libpcreposix.exp
grep -E -e "^[^_]|__?pcre_.*utf8|__?pcre_printint" ".libs/libpcreposix.exp" > ".libs/libpcreposix.expT"
mv -f ".libs/libpcreposix.expT" ".libs/libpcreposix.exp"
echo "{ global:" > .libs/libpcreposix.ver
 cat .libs/libpcreposix.exp | sed -e "s/\(.*\)/\1;/" >> .libs/libpcreposix.ver
 echo "local: *; };" >> .libs/libpcreposix.ver
 x86_64-pc-linux-gnu-gcc -shared  .libs/pcreposix.o  -Wl,--rpath -Wl,/var/tmp/portage/libpcre-6.3/work/pcre-6.3/.libs -L/var/tmp/portage/libpcre-6.3/work/pcre-6.3 -L/var/tmp/portage/libpcre-6.3/work/pcre-6.3/.libs ./.libs/libpcre.so  -Wl,-soname -Wl,libpcreposix.so.0 -Wl,-version-script -Wl,.libs/libpcreposix.ver -o .libs/libpcreposix.so.0.0.0
(cd .libs && rm -f libpcreposix.so.0 && ln -s libpcreposix.so.0.0.0 libpcreposix.so.0)
(cd .libs && rm -f libpcreposix.so && ln -s libpcreposix.so.0.0.0 libpcreposix.so)
x86_64-pc-linux-gnu-ar cru .libs/libpcreposix.a  pcreposix.o
x86_64-pc-linux-gnu-ranlib .libs/libpcreposix.a
creating libpcreposix.la
(cd .libs && rm -f libpcreposix.la && ln -s ../libpcreposix.la libpcreposix.la)

!!! ERROR: dev-libs/libpcre-6.3 failed.



I was able to get past this problem by doing MAKEOPTS=-j1 emerge libpcre.

Here's my emerge info:

Portage 2.0.54 (hardened/amd64, gcc-3.4.5, glibc-2.3.5-r2, 2.6.14-hardened-r6 x86_64)
=================================================================
System uname: 2.6.14-hardened-r6 x86_64 AMD Athlon(tm) 64 X2 Dual Core Processor 3800+
Gentoo Base System version 1.6.14
dev-lang/python:     2.4.2
sys-apps/sandbox:    1.2.12
sys-devel/autoconf:  2.13, 2.59-r7
sys-devel/automake:  1.4_p6, 1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.6-r1
sys-devel/binutils:  2.16.1
sys-devel/libtool:   1.5.22
virtual/os-headers:  2.6.11-r2
ACCEPT_KEYWORDS="amd64"
AUTOCLEAN="yes"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-O2 -pipe -fomit-frame-pointer -march=k8"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/kde/2/share/config /usr/kde/3/share/config /usr/share/config /var/bind /var/qmail/control"
CONFIG_PROTECT_MASK="/etc/eselect/compiler /etc/gconf /etc/terminfo /etc/env.d"
CXXFLAGS="-O2 -pipe -fomit-frame-pointer -march=k8"
DISTDIR="/usr/portage/distfiles"
FEATURES="autoconfig distlocks sandbox sfperms strict"
GENTOO_MIRRORS="http://gentoo.chem.wisc.edu/gentoo/ http://gentoo.mirrors.pair.com/"
MAKEOPTS="-j4"
PKGDIR="/usr/portage/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
SYNC="rsync://rsync.gentoo.org/gentoo-portage"
USE="amd64 berkdb bzlib crypt doc hardened imap iproute2 maildir nls nptl nptlonly pam pcre pic posix postgres prelude readline sasl skey ssl tcpd vhosts userland_GNU kernel_linux elibc_glibc"
Unset:  ASFLAGS, CTARGET, INSTALL_MASK, LANG, LC_ALL, LDFLAGS, LINGUAS, PORTDIR_OVERLAY
Comment 1 Malcolm Lashley (RETIRED) gentoo-dev 2006-04-20 16:11:12 UTC
Created attachment 85078 [details, diff]
Patch makefile for llel builds.

Can't reproduce the problem on my X2 system with same makeopts - can you (or anyone else) please apply the attached patch - and see if it fixes it for you?

(ebuild blah unpack ; cd /var/tmp/portage/libpcre-6.3/work/pcre-6.3 ; patch -p0 </path/to/patch ; ebuild blah compile)

Thanks.
Comment 2 Eric Brown 2006-04-20 16:22:26 UTC
It's a little finicky:

It will bomb out like 50% of the time now, the rest of the time it will build fine.  I noticed that while the processors were in use (by other builds), it would bomb out more often.

I'll try your patch and post a reply...
Comment 3 Eric Brown 2006-04-20 16:41:28 UTC
I decided to do a little testing when using your patch (which applies successfully):

I tested the build 5 times without the patch using this line:

ebuild /usr/portage/dev-libs/libpcre/libpcre-6.3.ebuild clean && 
ebuild /usr/portage/dev-libs/libpcre/libpcre-6.3.ebuild unpack && 
ebuild /usr/portage/dev-libs/libpcre/libpcre-6.3.ebuild compile

Failed:     3
Succeeded:  2

Here's the test build with your patch using this line:

ebuild /usr/portage/dev-libs/libpcre/libpcre-6.3.ebuild clean && 
ebuild /usr/portage/dev-libs/libpcre/libpcre-6.3.ebuild unpack && 
cd /var/tmp/portage/libpcre-6.3/work/pcre-6.3 && 
patch -p0 < ~/patch && 
ebuild /usr/portage/dev-libs/libpcre/libpcre-6.3.ebuild compile

Failed:     0
Succeeded:  5


So in conclusion, your patch seems to work.
Comment 4 Mikko Tiihonen 2006-05-28 09:38:02 UTC
the libpcre-6.6 still fails randomly with -jN (N>1) and thus needs patching
Comment 5 Chris Gianelloni (RETIRED) gentoo-dev 2006-07-18 06:49:12 UTC
This affects the 2006.1 release.  I didn't find this bug in my searching, so I cheated and changed the emake to use -j1 in the 2006.1 snapshot.  This won't affect anything in the live tree, but I just wanted to let the maintainer know that this is definitely something I can verify.
Comment 6 Charles Pence 2006-08-03 15:40:58 UTC
I can also confirm this bug, on a new Core Duo machine, latest ~x86 branch, MAKEOPTS=-j4 by default.

Compiling with MAKEOPTS="-j1" emerge -av1 libpcre succeeds.
Comment 7 Neal McConachie 2006-08-15 20:35:26 UTC
confirmed for me, running AMD 64 X2, with Makeopts = -j3

Relevant output:
/bin/sh ./libtool --mode=link x86_64-pc-linux-gnu-g++  -I. -I.   -o pcre_scanner_unittest  pcre_scanner_unittest.o \
        libpcrecpp.la libpcreposix.la
libtool: link: cannot find the library `libpcreposix.la'
make: *** [pcre_scanner_unittest] Error 1
make: *** Waiting for unfinished jobs....
(cd .libs && rm -f libpcreposix.so.0 && ln -s libpcreposix.so.0.0.0 libpcreposix.so.0)
(cd .libs && rm -f libpcreposix.so && ln -s libpcreposix.so.0.0.0 libpcreposix.so)
x86_64-pc-linux-gnu-ar cru .libs/libpcreposix.a  pcreposix.o
x86_64-pc-linux-gnu-ranlib .libs/libpcreposix.a
creating libpcreposix.la
(cd .libs && rm -f libpcreposix.la && ln -s ../libpcreposix.la libpcreposix.la)

!!! ERROR: dev-libs/libpcre-6.3 failed.
Call stack:
  ebuild.sh, line 1543:   Called dyn_compile
  ebuild.sh, line 938:   Called src_compile
  libpcre-6.3.ebuild, line 38:   Called die

- looks like the file libpcreposix.la gets created AFTER it gets looked for (with -j>1)

Emerge --info:
Gentoo Base System version 1.12.4
Portage 2.1.1_pre5 (default-linux/amd64/2006.0, gcc-4.1.0/amd64-vanilla, glibc-2.4-r3, 2.6.17-gentoo-r4 x86_64)
=================================================================
System uname: 2.6.17-gentoo-r4 x86_64 AMD Athlon(tm) 64 X2 Dual Core Processor 4400+
Last Sync: Tue, 15 Aug 2006 08:50:01 +0000
ccache version 2.3 [disabled]
app-admin/eselect-compiler: 2.0.0_rc2-r1
dev-lang/python:     2.4.3-r1
dev-python/pycrypto: 2.0.1-r5
dev-util/ccache:     2.3
dev-util/confcache:  [Not Present]
sys-apps/sandbox:    1.2.17
sys-devel/autoconf:  2.13, 2.59-r7
sys-devel/automake:  1.4_p6, 1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.6-r2
sys-devel/binutils:  2.17
sys-devel/gcc-config: 2.0.0_rc1
sys-devel/libtool:   1.5.22
virtual/os-headers:  2.6.11-r2
ACCEPT_KEYWORDS="amd64"
AUTOCLEAN="yes"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-march=athlon64 -O2 -pipe -msse3"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/kde/3.5/env /usr/kde/3.5/share/config /usr/kde/3.5/shutdown /usr/share/X11/xkb /usr/share/config"
CONFIG_PROTECT_MASK="/etc/env.d /etc/eselect/compiler /etc/gconf /etc/revdep-rebuild /etc/splash /etc/terminfo"
CXXFLAGS="-march=athlon64 -O2 -pipe -msse3"
DISTDIR="/usr/portage/distfiles"
FEATURES="autoconfig distlocks metadata-transfer parallel-fetch sandbox sfperms userpriv usersandbox"
GENTOO_MIRRORS="http://distfiles.gentoo.org http://www.ibiblio.org/pub/Linux/distributions/gentoo"
LANG="en_CA.UTF-8"
LC_ALL="en_CA.UTF-8"
LINGUAS="en_CA en_US en_GB en"
MAKEOPTS="-j3"
PKGDIR="/usr/portage/packages"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --delete-after --stats --timeout=180 --exclude='/distfiles' --exclude='/local' --exclude='/packages'"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY="/usr/local/portage"
SYNC="rsync://rsync.namerica.gentoo.org/gentoo-portage"
USE="amd64 X a52 aac alsa apache2 arts avi bash-completion berkdb bitmap-fonts bzip2 cairo cdparanoia cdr cjk cli crypt css cups directfb dlloader doc dri dv dvd dvdr dvdread eds elibc_glibc emboss emul-linux-x86 encode examples fbcon ffmpeg firefox foomaticdb fortran gif glut gmp gnome gpm gstreamer gtk gtk2 ieee1394 imlib input_devices_evdev input_devices_keyboard input_devices_mouse ipod isdnlog java javascript jikes jpeg kde kdeenablefinal kdehiddenvisibility kernel_linux lame ldap libwww linguas_en linguas_en_CA linguas_en_GB linguas_en_US lm_sensors logrotate lzw lzw-tiff mad motif mp3 mpeg msn musepack ncurses nls nptl nptlonly nsplugin nvidia ofx ogg oggvorbis opengl pam pcre pdflib perl png ppds pppd python qt3 qt4 quicktime readline reflection sdl session slang spell spl ssl svg tcltk tcpd threads tidy tiff tk truetype truetype-fonts type1-fonts unicode usb userland_GNU video_cards_nv video_cards_nvidia video_cards_vesa vorbis wma wmf xml xmms xorg xpm xprint xv xvid zlib"
Unset:  CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LDFLAGS, PORTAGE_RSYNC_EXTRA_OPTS

Comment 8 Jakub Moc (RETIRED) gentoo-dev 2006-08-28 08:51:09 UTC
Ping! Still broken...
Comment 9 Shaw 2006-09-06 07:41:08 UTC
ping reply -- yep, still broken :)

Hit this one on a x86_64 with -j4

Installed correctly with with `MAKEOPTS=-j1 emerge --resume'
Comment 10 Stephen Bennett (RETIRED) gentoo-dev 2006-09-06 15:34:33 UTC
I just added the fix for this into libpcre-6.6. No revbump since it's just a compile fix. It's been around a while so can probably be considered for stable rather than patching two versions of the package.