Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 523730 - dev-lang/perl-5.20.1 fails to build 'libperl.5.20.1.dylib' on OS X
Summary: dev-lang/perl-5.20.1 fails to build 'libperl.5.20.1.dylib' on OS X
Status: RESOLVED FIXED
Alias: None
Product: Gentoo/Alt
Classification: Unclassified
Component: Prefix Support (show other bugs)
Hardware: AMD64 OS X
: Normal normal (vote)
Assignee: Gentoo Prefix
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2014-09-25 21:36 UTC by Stuart Shelton
Modified: 2014-09-26 11:00 UTC (History)
0 users

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


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Stuart Shelton 2014-09-25 21:36:23 UTC
rm -rf ../../DynaLoader.o
cp DynaLoader.o ../../DynaLoader.o
make[1]: Leaving directory '/Volumes/Scratch/tmp/portage/dev-lang/perl-5.20.1/work/perl-5.20.1/ext/DynaLoader'
rm -f libperl.5.20.1.dylib
parts/inc/misc provides isASCII, which is still marked todo for 5.6.0
parts/inc/misc provides isCNTRL, which is still marked todo for 5.6.0
parts/inc/variables provides PL_parser, which is still marked todo for 5.9.5
env MACOSX_DEPLOYMENT_TARGET=10.3  -o libperl.5.20.1.dylib -Wl,-dead_strip_dylibs -dynamiclib                             -compatibility_version                                5.20.0                       -current_version 5.20.1                        -install_name /opt/gentoo/usr/lib/perl5/5.20.1/x86_64-darwin-thread-multi/CORE/libperl.5.20.dylib op.o perl.o   gv.o toke.o perly.o pad.o regcomp.o dump.o util.o mg.o reentr.o mro.o keywords.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 utf8.o taint.o deb.o universal.o globals.o perlio.o perlapi.o numeric.o mathoms.o locale.o pp_pack.o pp_sort.o caretx.o   DynaLoader.o -ldl -lm -lutil -lc
env: -o: No such file or directory
GNUmakefile:360: recipe for target 'libperl.5.20.1.dylib' failed
make: *** [libperl.5.20.1.dylib] Error 127
make: *** Waiting for unfinished jobs....


There definitely appears to be a ${CC} (or similar) missing from that 'env' line...

$ emerge -pqv '=dev-lang/perl-5.20.1::gentoo_prefix'
[ebuild     U ] dev-lang/perl-5.20.1 [5.18.2-r1] USE="berkdb gdbm ithreads -debug -doc"

$ emerge --info
Portage 2.2.10.1-prefix (python 2.7.6-final-0, prefix/darwin/macos/10.9/x64, gcc-4.2.1, unavailable, 13.4.0 x86_64)
=================================================================
                        System Settings
=================================================================
System uname: Darwin-13.4.0-x86_64-i386-64bit
Timestamp of tree: Thu, 25 Sep 2014 19:37:09 +0000
app-shells/bash:      4.2_p45-r1
dev-lang/python:      2.7.6-r1
dev-util/cmake:       3.0.2
dev-util/pkgconfig:   0.28-r2
sys-devel/autoconf:   2.69
sys-devel/automake:   1.14
sys-devel/gcc-config: 1.8-r00.1
sys-devel/libtool:    2.4.2-r1
sys-devel/make:       4.0-r1
ACCEPT_KEYWORDS="amd64 amd64-linux x64-macos ~x64-macos"
ACCEPT_LICENSE="* -@EULA"
CBUILD="x86_64-apple-darwin13"
CFLAGS="-arch x86_64 -march=core-avx-i -mmacosx-version-min=10.9 -fcolor-diagnostics -ftrapv -O3 -pipe"
CHOST="x86_64-apple-darwin13"
CONFIG_PROTECT="/etc /usr/share/gnupg/qualified.txt"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/gconf /etc/gentoo-release /etc/revdep-rebuild /etc/terminfo"
CXXFLAGS="-arch x86_64 -march=core-avx-i -mmacosx-version-min=10.9 -fcolor-diagnostics -ftrapv -O3 -pipe"
DISTDIR="/opt/gentoo/usr/portage/distfiles"
FCFLAGS=""
FEATURES="assume-digests binpkg-logs buildpkg candy clean-logs collision-protect compress-build-logs compressdebug config-protect-if-modified distlocks downgrade-backup ebuild-locks fixlafiles force-prefix merge-sync news nostrip parallel-fetch parallel-install preserve-libs protect-owned sfperms split-elog split-log splitdebug strict stricter unknown-features-warn unmerge-backup unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync"
FFLAGS=""
GENTOO_MIRRORS="http://distfiles.gentoo.org"
LC_ALL="C"
LDFLAGS="-Wl,-dead_strip_dylibs"
MAKEOPTS="-j7"
PKGDIR="/opt/gentoo/usr/portage/packages/clang"
PORTAGE_CONFIGROOT="/opt/gentoo/"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --omit-dir-times --compress --force --whole-file --delete --stats --human-readable --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages"
PORTAGE_TMPDIR="/Volumes/Scratch/tmp"
PORTDIR="/opt/gentoo/usr/portage"
USE_PYTHON="2.7"
Unset:  CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LANG, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS, SYNC

CC="/opt/gentoo/usr/bin/clang"
CXX="/opt/gentoo/usr/bin/clang++"

$ clang --version
clang version 3.5.0 (tags/RELEASE_350/final)
Target: x86_64-apple-darwin13.4.0
Thread model: posix
Comment 1 Stuart Shelton 2014-09-25 21:47:04 UTC
Clearer output (from perl-5.20.0-r1, also affected):

Updating 'mktables.lst'
DYLD_LIBRARY_PATH=/Volumes/Scratch/tmp/portage/dev\-lang/perl\-5.20.0\-r1/work/perl\-5.20.0 ./miniperl -Ilib -Ilib -MExtUtils::Miniperl -e 'writemain(\"perlmain.c", @ARGV)' DynaLoader
clang -c -DPERL_CORE -fno-common -DPERL_DARWIN -no-cpp-precomp -fno-strict-aliasing -pipe -I/opt/gentoo/usr/include -std=c89 -arch x86_64 -march=core-avx-i -mmacosx-version-min=10.9 -O0 -g -pipe -Wall -ansi -W -Wextra -Wdeclaration-after-statement -Wendif-labels -Wc++-compat -Wwrite-strings -Wno-unused-value perlmain.c
clang -c -DPERL_CORE -fno-common -DPERL_DARWIN -no-cpp-precomp -fno-strict-aliasing -pipe -I/opt/gentoo/usr/include -std=c89 -arch x86_64 -march=core-avx-i -mmacosx-version-min=10.9 -O0 -g -pipe -Wall -ansi -W -Wextra -Wdeclaration-after-statement -Wendif-labels -Wc++-compat -Wwrite-strings -Wno-unused-value op.c
clang -c -DPERL_CORE -fno-common -DPERL_DARWIN -no-cpp-precomp -fno-strict-aliasing -pipe -I/opt/gentoo/usr/include -std=c89 -arch x86_64 -march=core-avx-i -mmacosx-version-min=10.9 -O0 -g -pipe -Wall -ansi -W -Wextra -Wdeclaration-after-statement -Wendif-labels -Wc++-compat -Wwrite-strings -Wno-unused-value perl.c
DYLD_LIBRARY_PATH=/Volumes/Scratch/tmp/portage/dev\-lang/perl\-5.20.0\-r1/work/perl\-5.20.0 ./miniperl -Ilib make_ext.pl DynaLoader.o MAKE=make LIBPERL_A=libperl.5.20.0.dylib LINKTYPE=static
        Making DynaLoader (all)

Running Makefile.PL in ext/DynaLoader
../../miniperl -I../../lib Makefile.PL INSTALLDIRS=perl INSTALLMAN1DIR=none INSTALLMAN3DIR=none PERL_CORE=1 LIBPERL_A=libperl.5.20.0.dylib LINKTYPE=static
Generating a Unix-style Makefile
Writing Makefile for DynaLoader
make[1]: Entering directory '/Volumes/Scratch/tmp/portage/dev-lang/perl-5.20.0-r1/work/perl-5.20.0/ext/DynaLoader'
make[1]: Leaving directory '/Volumes/Scratch/tmp/portage/dev-lang/perl-5.20.0-r1/work/perl-5.20.0/ext/DynaLoader'
Making all in ext/DynaLoader
make all PERL_CORE=1 LIBPERL_A=libperl.5.20.0.dylib LINKTYPE=static
make[1]: Entering directory '/Volumes/Scratch/tmp/portage/dev-lang/perl-5.20.0-r1/work/perl-5.20.0/ext/DynaLoader'
../../miniperl "-I../../lib" "-I../../lib" DynaLoader_pm.PL DynaLoader.pm
cp DynaLoader.pm ../../lib/DynaLoader.pm
rm -f DynaLoader.xs
cp dl_dlopen.xs DynaLoader.xs
../../miniperl "-I../../lib" "-I../../lib" ../../lib/ExtUtils/xsubpp -noprototypes -typemap ../../lib/ExtUtils/typemap DynaLoader.xs > DynaLoader.xsc && mv DynaLoader.xsc DynaLoader.c
clang -c   -fno-common -DPERL_DARWIN -no-cpp-precomp -fno-strict-aliasing -pipe -I/opt/gentoo/usr/include -arch x86_64 -march=core-avx-i -mmacosx-version-min=10.9 -O0 -g -pipe   -DVERSION=\"1.25\" -DXS_VERSION=\"1.25\"  "-I../.."  -DLIBC="" DynaLoader.c
rm -rf ../../DynaLoader.o
cp DynaLoader.o ../../DynaLoader.o
make[1]: Leaving directory '/Volumes/Scratch/tmp/portage/dev-lang/perl-5.20.0-r1/work/perl-5.20.0/ext/DynaLoader'
rm -f libperl.5.20.0.dylib
env MACOSX_DEPLOYMENT_TARGET=10.3  -o libperl.5.20.0.dylib -Wl,-dead_strip_dylibs -dynamiclib                             -compatibility_version                                5.20.0                       -current_version 5.20.0                        -install_name /opt/gentoo/usr/lib/perl5/5.20.0/x86_64-darwin-thread-multi/CORE/libperl.5.20.dylib op.o perl.o   gv.o toke.o perly.o pad.o regcomp.o dump.o util.o mg.o reentr.o mro.o keywords.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 utf8.o taint.o deb.o universal.o globals.o perlio.o perlapi.o numeric.o mathoms.o locale.o pp_pack.o pp_sort.o caretx.o   DynaLoader.o -ldl -lm -lutil -lc
env: -o: No such file or directory
GNUmakefile:360: recipe for target 'libperl.5.20.0.dylib' failed
make: *** [libperl.5.20.0.dylib] Error 127
Comment 2 Stuart Shelton 2014-09-25 21:51:24 UTC
GNUmakefile line 359 reads:

$(LIBPERL): $& $(obj) $(DYNALOADER) $(LIBPERLEXPORT)
        rm -f $@
        $(LD) -o $@ $(SHRPLDFLAGS) $(obj) $(DYNALOADER) $(libs)

... and starts with:

CC = clang
LD = env MACOSX_DEPLOYMENT_TARGET=10.3 ${cc:-gcc}

... which somehow appears to evaluating to 'env MACOSX_DEPLOYMENT_TARGET=10.3 '?
Comment 3 Fabian Groffen gentoo-dev 2014-09-26 07:08:37 UTC
Thanks, noticed this yesterday too.  I think they should have used CC, not cc.  Therefore the expansion is empty, but should have been replaced by gcc, that's the odd thing.  On the other hand, Makefile isn't shell script, so perhaps that's the problem here.
Comment 4 Stuart Shelton 2014-09-26 10:14:20 UTC
(In reply to Fabian Groffen from comment #3)
> Thanks, noticed this yesterday too.  I think they should have used CC, not
> cc.  Therefore the expansion is empty, but should have been replaced by gcc,
> that's the odd thing.  On the other hand, Makefile isn't shell script, so
> perhaps that's the problem here.

Ah yeah - I think you've got it: I also initially thought that 'cc' should be 'CC' - but since 'CC' is defined just above this seemed unlikely to be the intention, and I also expected it to default to 'gcc' (rather than blank) otherwise.  But, as you say, this is a Makefile rather than shell, so I suspect that the author also got confused between the two ;)
Comment 5 Fabian Groffen gentoo-dev 2014-09-26 11:00:35 UTC
Fixed by forcing LD to be set.