Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 196728 - Parallel mkdir failures on Gentoo/FreeBSD.
Summary: Parallel mkdir failures on Gentoo/FreeBSD.
Status: RESOLVED FIXED
Alias: None
Product: Gentoo/Alt
Classification: Unclassified
Component: FreeBSD (show other bugs)
Hardware: All FreeBSD
: High normal (vote)
Assignee: Gentoo/BSD Team
URL:
Whiteboard:
Keywords:
: 206495 (view as bug list)
Depends on:
Blocks:
 
Reported: 2007-10-22 18:20 UTC by .:deadhead:.
Modified: 2009-01-24 21:47 UTC (History)
6 users (show)

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


Attachments
patch to the ebuld. (patch_gmp.patch,446 bytes, patch)
2007-10-22 19:13 UTC, .:deadhead:.
Details | Diff
eclass/ELT-patches/install-sh/1.5.6 proposed patch (1.5.6,536 bytes, patch)
2008-06-20 09:45 UTC, Javier Villavicencio (RETIRED)
Details | Diff
eclass/ELT-patches/install-sh/1.5.4 proposed patch (1.5.4,537 bytes, patch)
2008-06-20 09:47 UTC, Javier Villavicencio (RETIRED)
Details | Diff
eclass/ELT-patches/install-sh/1.5 proposed patch (1.5,468 bytes, patch)
2008-06-20 09:49 UTC, Javier Villavicencio (RETIRED)
Details | Diff
eclass/ELT-patches/install-sh/1.5.4 proposed patch (fixed) (1.5.4,538 bytes, patch)
2008-06-20 11:42 UTC, Javier Villavicencio (RETIRED)
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description .:deadhead:. 2007-10-22 18:20:48 UTC
Making install in doc
gmake[2]: Entering directory `/var/tmp/portage/dev-libs/gmp-4.2.1-r1/work/gmp-4.2.1/doc'
gmake[3]: Entering directory `/var/tmp/portage/dev-libs/gmp-4.2.1-r1/work/gmp-4.2.1/doc'
gmake[3]: Nothing to be done for `install-exec-am'.
test -z "/usr/share/info" || /var/tmp/portage/dev-libs/gmp-4.2.1-r1/work/gmp-4.2.1/install-sh -d "/var/tmp/portage/dev-libs/gmp-4.2.1-r1/image//usr/share/info"
 /usr/bin/install -c -m 644 './gmp.info' '/var/tmp/portage/dev-libs/gmp-4.2.1-r1/image//usr/share/info/gmp.info'
 /usr/bin/install -c -m 644 './gmp.info-1' '/var/tmp/portage/dev-libs/gmp-4.2.1-r1/image//usr/share/info/gmp.info-1'
 /usr/bin/install -c -m 644 './gmp.info-2' '/var/tmp/portage/dev-libs/gmp-4.2.1-r1/image//usr/share/info/gmp.info-2'
 install-info --info-dir='/var/tmp/portage/dev-libs/gmp-4.2.1-r1/image//usr/share/info' '/var/tmp/portage/dev-libs/gmp-4.2.1-r1/image//usr/share/info/gmp.info'
gmake[3]: Leaving directory `/var/tmp/portage/dev-libs/gmp-4.2.1-r1/work/gmp-4.2.1/doc'
gmake[2]: Leaving directory `/var/tmp/portage/dev-libs/gmp-4.2.1-r1/work/gmp-4.2.1/doc'
gmake[2]: Entering directory `/var/tmp/portage/dev-libs/gmp-4.2.1-r1/work/gmp-4.2.1'
gmake[3]: Entering directory `/var/tmp/portage/dev-libs/gmp-4.2.1-r1/work/gmp-4.2.1'
test -z "/usr/include" || /var/tmp/portage/dev-libs/gmp-4.2.1-r1/work/gmp-4.2.1/install-sh -d "/var/tmp/portage/dev-libs/gmp-4.2.1-r1/image//usr/include"
test -z "/usr/include" || /var/tmp/portage/dev-libs/gmp-4.2.1-r1/work/gmp-4.2.1/install-sh -d "/var/tmp/portage/dev-libs/gmp-4.2.1-r1/image//usr/include"
test -z "/usr/lib" || /var/tmp/portage/dev-libs/gmp-4.2.1-r1/work/gmp-4.2.1/install-sh -d "/var/tmp/portage/dev-libs/gmp-4.2.1-r1/image//usr/lib"
mkdir: /var/tmp/portage/dev-libs/gmp-4.2.1-r1/image//usr/include: File exists
gmake[3]: *** [install-nodist_includeexecHEADERS] Error 1 /usr/bin/install -c -m 644 'gmpxx.h' '/var/tmp/portage/dev-libs/gmp-4.2.1-r1/image//usr/include/gmpxx.h'

gmake[3]: *** Waiting for unfinished jobs....
 /bin/bash ./libtool --mode=install /usr/bin/install -c  'libgmp.la' '/var/tmp/portage/dev-libs/gmp-4.2.1-r1/image//usr/lib/libgmp.la'
/usr/bin/install -c .libs/libgmp.so.3.4.1 /var/tmp/portage/dev-libs/gmp-4.2.1-r1/image//usr/lib/libgmp.so.3.4.1
(cd /var/tmp/portage/dev-libs/gmp-4.2.1-r1/image//usr/lib && rm -f libgmp.so.3 && ln -s libgmp.so.3.4.1 libgmp.so.3)
(cd /var/tmp/portage/dev-libs/gmp-4.2.1-r1/image//usr/lib && rm -f libgmp.so && ln -s libgmp.so.3.4.1 libgmp.so)
/usr/bin/install -c .libs/libgmp.lai /var/tmp/portage/dev-libs/gmp-4.2.1-r1/image//usr/lib/libgmp.la
/usr/bin/install -c .libs/libgmp.a /var/tmp/portage/dev-libs/gmp-4.2.1-r1/image//usr/lib/libgmp.a
i686-gentoo-freebsd6.2-ranlib /var/tmp/portage/dev-libs/gmp-4.2.1-r1/image//usr/lib/libgmp.a
chmod 644 /var/tmp/portage/dev-libs/gmp-4.2.1-r1/image//usr/lib/libgmp.a
libtool: install: warning: remember to run `libtool --finish /usr/lib'
 /bin/bash ./libtool --mode=install /usr/bin/install -c  'libgmpxx.la' '/var/tmp/portage/dev-libs/gmp-4.2.1-r1/image//usr/lib/libgmpxx.la'
libtool: install: warning: relinking `libgmpxx.la'
(cd /var/tmp/portage/dev-libs/gmp-4.2.1-r1/work/gmp-4.2.1; /bin/bash ./libtool  --mode=relink i686-gentoo-freebsd6.2-g++ -O2 -march=pentium4 -pipe -o libgmpxx.la -rpath /usr/lib -version-info 4:1:1 dummy.lo cxx/isfuns.lo cxx/ismpf.lo cxx/ismpq.lo cxx/ismpz.lo cxx/ismpznw.lo cxx/osdoprnti.lo cxx/osfuns.lo cxx/osmpf.lo cxx/osmpq.lo cxx/osmpz.lo libgmp.la -inst-prefix-dir /var/tmp/portage/dev-libs/gmp-4.2.1-r1/image/)
i686-gentoo-freebsd6.2-g++ -shared -nostdlib /usr/lib/gcc/i686-gentoo-freebsd6.2/4.2.1/../../../crti.o /usr/lib/gcc/i686-gentoo-freebsd6.2/4.2.1/crtbeginS.o  .libs/dummy.o cxx/.libs/isfuns.o cxx/.libs/ismpf.o cxx/.libs/ismpq.o cxx/.libs/ismpz.o cxx/.libs/ismpznw.o cxx/.libs/osdoprnti.o cxx/.libs/osfuns.o cxx/.libs/osmpf.o cxx/.libs/osmpq.o cxx/.libs/osmpz.o  -L/var/tmp/portage/dev-libs/gmp-4.2.1-r1/image//usr/lib -L/usr/lib -lgmp -L/usr/lib/gcc/i686-gentoo-freebsd6.2/4.2.1 -L/usr/lib/gcc/i686-gentoo-freebsd6.2/4.2.1/../../../../i686-gentoo-freebsd6.2/lib -L/usr/lib/gcc/i686-gentoo-freebsd6.2/4.2.1/../../.. -lstdc++ -lm -lgcc_s /usr/lib/gcc/i686-gentoo-freebsd6.2/4.2.1/crtendS.o /usr/lib/gcc/i686-gentoo-freebsd6.2/4.2.1/../../../crtn.o  -march=pentium4 -Wl,-soname -Wl,libgmpxx.so.3 -o .libs/libgmpxx.so.3.1.1
/usr/bin/install -c .libs/libgmpxx.so.3.1.1T /var/tmp/portage/dev-libs/gmp-4.2.1-r1/image//usr/lib/libgmpxx.so.3.1.1
(cd /var/tmp/portage/dev-libs/gmp-4.2.1-r1/image//usr/lib && rm -f libgmpxx.so.3 && ln -s libgmpxx.so.3.1.1 libgmpxx.so.3)
(cd /var/tmp/portage/dev-libs/gmp-4.2.1-r1/image//usr/lib && rm -f libgmpxx.so && ln -s libgmpxx.so.3.1.1 libgmpxx.so)
/usr/bin/install -c .libs/libgmpxx.lai /var/tmp/portage/dev-libs/gmp-4.2.1-r1/image//usr/lib/libgmpxx.la
/usr/bin/install -c .libs/libgmpxx.a /var/tmp/portage/dev-libs/gmp-4.2.1-r1/image//usr/lib/libgmpxx.a
i686-gentoo-freebsd6.2-ranlib /var/tmp/portage/dev-libs/gmp-4.2.1-r1/image//usr/lib/libgmpxx.a
chmod 644 /var/tmp/portage/dev-libs/gmp-4.2.1-r1/image//usr/lib/libgmpxx.a
libtool: install: warning: remember to run `libtool --finish /usr/lib'
gmake[3]: Leaving directory `/var/tmp/portage/dev-libs/gmp-4.2.1-r1/work/gmp-4.2.1'
gmake[2]: *** [install-am] Error 2
gmake[2]: Leaving directory `/var/tmp/portage/dev-libs/gmp-4.2.1-r1/work/gmp-4.2.1'
gmake[1]: *** [install-recursive] Error 1
gmake[1]: Leaving directory `/var/tmp/portage/dev-libs/gmp-4.2.1-r1/work/gmp-4.2.1'
gmake: *** [install] Error 2
 *
 * ERROR: dev-libs/gmp-4.2.1-r1 failed.
 * Call stack:
 *             ebuild.sh, line 1695:  Called dyn_install
 *             ebuild.sh, line 1132:  Called qa_call 'src_install'
 *             ebuild.sh, line   44:  Called src_install
 *   gmp-4.2.1-r1.ebuild, line   69:  Called die
 * The specific snippet of code:
 *      emake DESTDIR="${D}" install || die "make install failed"
 *  The die message:
 *   make install failed
 *
 * If you need support, post the topmost build error, and the call stack if relevant.
 * A complete build log is located at '/var/tmp/portage/dev-libs/gmp-4.2.1-r1/temp/build.log'.
 *


Portage 2.1.3.15 (default-bsd/fbsd/6.2/x86, gcc-4.2.1, freebsd-lib-6.2-r2, 6.2-RELEASE i386)
=================================================================
System uname: 6.2-RELEASE i386 i386
Timestamp of tree: Fri, 19 Oct 2007 01:47:01 +0000
app-shells/bash:     3.2_p17-r1
dev-lang/python:     2.4.4-r5, 2.5.1-r2
dev-python/pycrypto: 2.0.1-r6
sys-apps/baselayout: 2.0.0_rc4-r1
sys-devel/autoconf:  2.61-r1
sys-devel/automake:  1.10
sys-devel/binutils:  2.17-r2
sys-devel/gcc-config: 1.4.0-r3
sys-devel/libtool:   1.5.24
virtual/os-headers:  6.2-r2
ACCEPT_KEYWORDS="x86-fbsd ~x86-fbsd"
ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mulaw multi null plug rate route share shm softvol"
ARCH="x86-fbsd"
AUTOCLEAN="yes"
CBUILD="i686-gentoo-freebsd6.2"
CFLAGS="-O2 -march=pentium4 -pipe"
CHOST="i686-gentoo-freebsd6.2"
CLEAN_DELAY="5"
CLICOLOR="1"
CONFIG_PROTECT="/etc"
CONFIG_PROTECT_MASK="/etc/env.d /etc/gconf /etc/gentoo-release /etc/revdep-rebuild /etc/terminfo"
CVS_RSH="ssh"
CXXFLAGS="-O2 -march=pentium4 -pipe"
DISTDIR="/usr/portage/distfiles"
ELIBC="FreeBSD"
EMERGE_DEFAULT_OPTS="-tDv --with-bdeps y"
EMERGE_WARNING_DELAY="10"
FEATURES="collision-protect distlocks fixpackages metadata-transfer parallel-fetch sfperms strict unmerge-orphans"
FETCHCOMMAND="/usr/bin/wget -t 5 -T 60 --passive-ftp -O ${DISTDIR}/${FILE} ${URI}"
GCC_SPECS=""
GENTOO_MIRRORS="http://mirror.switch.ch/ftp/mirror/gentoo http://distfiles.gentoo.org"
G_BROKEN_FILENAMES="1"
G_FILENAME_ENCODING="UTF-8"
HOME="/root"
INFOPATH="/usr/share/info:/usr/share/binutils-data/i686-gentoo-freebsd6.2/2.17/info:/usr/share/gcc-data/i686-gentoo-freebsd6.2/4.2.1/info:/usr/share/gcc-data/i686-gentoo-freebsd6.2/4.2.0/info"
INPUT_DEVICES="keyboard mouse"
KERNEL="FreeBSD"
LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text"
LESS="-R -M --shift 5"
LESSOPEN="|lesspipe.sh %s"
LINGUAS="it"
LOGNAME="root"
MAIL="/var/mail/root"
MAKE="gmake"
MAKEOPTS="-j3"
MANPATH="/usr/local/share/man:/usr/share/man:/usr/share/binutils-data/i686-gentoo-freebsd6.2/2.17/man:/usr/share/gcc-data/i686-gentoo-freebsd6.2/4.2.1/man:/usr/share/gcc-data/i686-gentoo-freebsd6.2/4.2.0/man"
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/opt/bin:/usr/i686-gentoo-freebsd6.2/gcc-bin/4.2.1:/usr/i686-gentoo-freebsd6.2/gcc-bin/4.2.0"
PKGDIR="/usr/portage/packages"
PORTAGE_ARCHLIST="ppc s390 amd64 x86 ppc64 x86-fbsd m68k arm sparc sh mips ia64 alpha ppc-macos hppa sparc-fbsd"
PORTAGE_BINHOST_CHUNKSIZE="3000"
PORTAGE_BIN_PATH="/usr/lib/portage/bin"
PORTAGE_CONFIGROOT="/"
PORTAGE_DEBUG="0"
PORTAGE_DEPCACHEDIR="/var/cache/edb/dep"
PORTAGE_ELOG_CLASSES="info warn error log"
PORTAGE_ELOG_MAILFROM="portage@localhost"
PORTAGE_ELOG_MAILSUBJECT="[portage] ebuild log for ${PACKAGE} on ${HOST}"
PORTAGE_ELOG_MAILURI="root"
PORTAGE_ELOG_SYSTEM="save"
PORTAGE_GID="250"
PORTAGE_INST_GID="0"
PORTAGE_INST_UID="0"
PORTAGE_PYM_PATH="/usr/lib/portage/pym"
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 --filter=H_**/files/digest-*"
PORTAGE_RSYNC_RETRIES="3"
PORTAGE_TMPDIR="/var/tmp"
PORTAGE_WORKDIR_MODE="0700"
PORTDIR="/usr/portage"
PWD="/root"
PYTHONPATH="/usr/lib/portage/pym"
RESUMECOMMAND="/usr/bin/wget -c -t 5 -T 60 --passive-ftp -O ${DISTDIR}/${FILE} ${URI}"
ROOT="/"
ROOTPATH="/opt/bin:/usr/i686-gentoo-freebsd6.2/gcc-bin/4.2.1:/usr/i686-gentoo-freebsd6.2/gcc-bin/4.2.0"
RPMDIR="/usr/portage/rpm"
SHELL="/bin/bash"
SHLVL="1"
SSH_TTY="/dev/ttyp0"
SYNC="rsync://10.175.90.190/gentoo-portage"
TERM="xterm"
USE="bash-completion cli cracklib crypt cups dri gmp iconv ithreads java5 logrotate midi ncurses network-cron nls oss pam pcre perl ppds python readline reflection session spl ssl unicode x86-fbsd xorg zlib" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mulaw multi null plug rate route share shm softvol" ELIBC="FreeBSD" INPUT_DEVICES="keyboard mouse" KERNEL="FreeBSD" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LINGUAS="it" USERLAND="BSD" VIDEO_CARDS="apm ark chips cirrus cyrix dummy i128 i810 mach64 mga neomagic nv r128 radeon rendition s3 s3virge savage siliconmotion sis tga trident tseng vga via vmware"
USER="root"
USERLAND="BSD"
USE_EXPAND="ALSA_CARDS ALSA_PCM_PLUGINS CAMERAS CROSSCOMPILE_OPTS DVB_CARDS ELIBC FCDSL_CARDS FOO2ZJS_DEVICES FRITZCAPI_CARDS INPUT_DEVICES KERNEL LCD_DEVICES LINGUAS LIRC_DEVICES MISDN_CARDS USERLAND VIDEO_CARDS"
USE_EXPAND_HIDDEN="CROSSCOMPILE_OPTS ELIBC KERNEL USERLAND"
USE_ORDER="env:pkg:conf:defaults:pkginternal:env.d"
VIDEO_CARDS="apm ark chips cirrus cyrix dummy i128 i810 mach64 mga neomagic nv r128 radeon rendition s3 s3virge savage siliconmotion sis tga trident tseng vga via vmware"
XARGS="xargs"
_="/usr/bin/emerge"
Comment 1 .:deadhead:. 2007-10-22 19:13:02 UTC
Created attachment 134127 [details, diff]
patch to the ebuld.

With this patch to the ebuild the compile process has been completed succesfully.
Forcing -j1 did the trick.
Comment 2 Roy Marples (RETIRED) gentoo-dev 2007-10-23 11:28:00 UTC
I've fixed this by adding an elibtoolize patch instead (install-sh-1.5.6) which is also fix other packages that use this libtool version.

Thanks!
Comment 3 Robert Sebastian Gerus 2008-03-22 07:33:19 UTC
Why was the -j1 dropped in gmp-4.2.2.ebuild?
Comment 4 Robert Sebastian Gerus 2008-03-22 07:37:49 UTC
(that was supposed to go in one message...)
It still fails here, on gentoo/fbsd7/amd64, with the same error message.
Comment 5 Peter Weller (RETIRED) gentoo-dev 2008-03-22 07:40:47 UTC
It's still broken. Reopening.
Comment 6 Peter Weller (RETIRED) gentoo-dev 2008-03-22 07:44:51 UTC
CC'ing toolchain: Could you please re-add -j1 to the ebuild so that this builds for us? :)
Comment 7 SpanKY gentoo-dev 2008-03-22 20:31:39 UTC
no.  find the problem, dont ignore it.
Comment 8 Javier Villavicencio (RETIRED) gentoo-dev 2008-06-20 09:38:58 UTC
Change summary to mark some other bugs duplicate of this one.
Comment 9 Javier Villavicencio (RETIRED) gentoo-dev 2008-06-20 09:39:33 UTC
*** Bug 206495 has been marked as a duplicate of this bug. ***
Comment 10 Javier Villavicencio (RETIRED) gentoo-dev 2008-06-20 09:45:18 UTC
Created attachment 157713 [details, diff]
eclass/ELT-patches/install-sh/1.5.6 proposed patch

Looking at the install-sh script that comes with gmp, it does take care of concurrent mkdirs failures (which is what's happening here) but only when installing normal files (when it emulates the mkdir -p), not when installing dirs (install-sh -d)

The patch, changes the check for the previously existing dir (which doesn't *always* work) to capture the mkdir failure (as it's done when installing normal files) and only throw it if the directory was not created.

In this regard, gettext would need an elibtoolize too.
Comment 11 Javier Villavicencio (RETIRED) gentoo-dev 2008-06-20 09:47:47 UTC
Created attachment 157715 [details, diff]
eclass/ELT-patches/install-sh/1.5.4 proposed patch

And also for the other install-sh patches.
Comment 12 Javier Villavicencio (RETIRED) gentoo-dev 2008-06-20 09:49:49 UTC
Created attachment 157717 [details, diff]
eclass/ELT-patches/install-sh/1.5 proposed patch

Last one. I'm not sure these 1.5.4 and 1.5 will apply cleanly (just edited the patch, ran an emerge -e world with -j6 where 5 packages failed before).

Please review/test!
Thanks.
Comment 13 Javier Villavicencio (RETIRED) gentoo-dev 2008-06-20 11:42:06 UTC
Created attachment 157725 [details, diff]
eclass/ELT-patches/install-sh/1.5.4 proposed patch (fixed)

Sorry for the spam, wrong paste on the 1.5.4 one.
Comment 14 SpanKY gentoo-dev 2008-06-21 07:11:49 UTC
install-sh is from automake, not libtool ... so sticking it in with elibtoolize is inappropriate 
Comment 15 Javier Villavicencio (RETIRED) gentoo-dev 2008-06-21 09:00:20 UTC
(In reply to comment #14)
> install-sh is from automake, not libtool ... so sticking it in with elibtoolize
> is inappropriate 
> 

That I know, but the auto-magic-patching being done (currently) to try to fix this is coming from ELT-patches.
If you like I can make a patch for every version of automake we have and stick an eautoreconf to every ebuild that fails on emake install with -j > 1.
Is that what you're asking?
Comment 16 SpanKY gentoo-dev 2008-06-21 10:03:01 UTC
i'm not asking anything.  i'm saying that overloading elibtoolize is not the way to move forward.  elibtoolize is designed to do exactly one thing, and this is not part of that goal.

bug Diego about the autopatching stuff.
Comment 17 Javier Villavicencio (RETIRED) gentoo-dev 2008-06-21 10:36:32 UTC
(In reply to comment #16)
> i'm not asking anything.  i'm saying that overloading elibtoolize is not the
> way to move forward.  elibtoolize is designed to do exactly one thing, and this
> is not part of that goal.
> 
> bug Diego about the autopatching stuff.
> 

Cool, but it's not overloading, the 1.5* patches are already there. These ones are just a better fix for what they tried to fix in the first place.
(another alternative could be:
cd "${S}/<location of install-sh>"
epatch "${PORTDIR}/eclass/ELT-patches/install-sh/1.5.4"
If elibtoolize is too much.)
Comment 18 Diego Elio Pettenò (RETIRED) gentoo-dev 2008-07-22 22:32:18 UTC
Autoepatch will still have a long time to come. Considering that the set for install-sh is already there (I didn't add it by the way, Roy did), I'd say go on and update it. As for autoepatch, I'll see if I can find someone to help me.
Comment 19 Javier Villavicencio (RETIRED) gentoo-dev 2009-01-24 21:47:48 UTC
These are in cvs now.