Subject: | Compiling sombok library failed: invalid path for output of object files |
Trying to install the module on openSUSE 13.2 (x86_64) I ran in a problem when attempting to compile the included sombok library:
make[1]: Entering directory '/home/digibib/pinto/Unicode-LineBreak-2015.12/sombok'
cd lib && cc -c "-I/home/digibib/.plenv/versions/5.22.0/lib/perl5/5.22.0/x86_64-linux/CORE" "-I/home/digibib/pinto/Unicode-LineBreak-2015.12/sombok/include" -fwrapv -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_FORTIFY_SOURCE=2 -O2 -DVERSION=\"\" -DXS_VERSION=\"\" -fPIC "-I/home/digibib/.plenv/versions/5.22.0/lib/perl5/5.22.0/x86_64-linux/CORE" ../lib/8.0.0.c -o lib/8.0.0.o
Assembler messages:
Fatal error: can't create lib/8.0.0.o: Datei oder Verzeichnis nicht gefunden
The current dir at that moment already is "sombok/lib", so there is no "lib/" directory below the current working directory. The object file should probably be referenced as "-o ../lib/8.0.0.o".
Modifying Makefile.PL.sombok like this solved the problem:
--- Makefile.PL.sombok.orig 2016-02-16 12:04:41.982489379 +0100
+++ Makefile.PL.sombok 2016-02-16 12:05:37.587466548 +0100
@@ -63,6 +63,8 @@
{ $1 . $self->cd('lib', split /(?<!\\)\n\t/, $2) }eg;
$inherited =~ s{(\s)(\$\*\.c\s)}
{ "$1..\$(DIRFILESEP)$2" }eg;
+ $inherited =~ s{(\-o\s)(\$\*\$\(OBJ_EXT\))}
+ { "$1..\$(DIRFILESEP)$2" }eg;
$inherited;
}
But it may have other unintended consequences I simply havenĀ“t run in, yet.
uname -a
Linux dnext1 3.16.7-32-desktop #1 SMP PREEMPT Wed Jan 20 14:05:33 UTC 2016 (d4df98a) x86_64 x86_64 x86_64 GNU/Linux
gcc --version
gcc (SUSE Linux) 4.8.3 20140627 [gcc-4_8-branch revision 212064]
perl -V
Summary of my perl5 (revision 5 version 22 subversion 0) configuration:
Platform:
osname=linux, osvers=3.16.7-24-default, archname=x86_64-linux
uname='linux dnext1 3.16.7-24-default #1 smp mon aug 3 14:37:06 utc 2015 (ec183cc) x86_64 x86_64 x86_64 gnulinux '
config_args='-Dprefix=/home/digibib/.plenv/versions/5.22.0 -de -Dusedevel -A'eval:scriptdir=/home/digibib/.plenv/versions/5.22.0/bin''
hint=recommended, useposix=true, d_sigaction=define
useithreads=undef, usemultiplicity=undef
use64bitint=define, use64bitall=define, uselongdouble=undef
usemymalloc=n, bincompat5005=undef
Compiler:
cc='cc', ccflags ='-fwrapv -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_FORTIFY_SOURCE=2',
optimize='-O2',
cppflags='-fwrapv -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include'
ccversion='', gccversion='4.8.3 20140627 [gcc-4_8-branch revision 212064]', gccosandvers=''
intsize=4, longsize=8, ptrsize=8, doublesize=8, byteorder=12345678, doublekind=3
d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=16, longdblkind=3
ivtype='long', ivsize=8, nvtype='double', nvsize=8, Off_t='off_t', lseeksize=8
alignbytes=8, prototype=define
Linker and Libraries:
ld='cc', ldflags =' -fstack-protector -L/usr/local/lib'
libpth=/usr/local/lib /usr/lib64/gcc/x86_64-suse-linux/4.8/include-fixed /usr/lib64/gcc/x86_64-suse-linux/4.8/../../../../x86_64-suse-linux/lib /usr/lib /lib/../lib64 /usr/lib/../lib64 /lib /lib64 /usr/lib64 /usr/local/lib64
libs=-lpthread -lnsl -ldb -ldl -lm -lcrypt -lutil -lc
perllibs=-lpthread -lnsl -ldl -lm -lcrypt -lutil -lc
libc=libc-2.19.so, so=so, useshrplib=false, libperl=libperl.a
gnulibc_version='2.19'
Dynamic Linking:
dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-Wl,-E'
cccdlflags='-fPIC', lddlflags='-shared -O2 -L/usr/local/lib -fstack-protector'
Characteristics of this binary (from libperl):
Compile-time options: HAS_TIMES PERLIO_LAYERS PERL_DONT_CREATE_GVSV
PERL_HASH_FUNC_ONE_AT_A_TIME_HARD PERL_MALLOC_WRAP
PERL_NEW_COPY_ON_WRITE PERL_PRESERVE_IVUV
PERL_USE_DEVEL USE_64_BIT_ALL USE_64_BIT_INT
USE_LARGE_FILES USE_LOCALE USE_LOCALE_COLLATE
USE_LOCALE_CTYPE USE_LOCALE_NUMERIC USE_LOCALE_TIME
USE_PERLIO USE_PERL_ATOF
Locally applied patches:
Devel::PatchPerl 1.30
Built under linux
Compiled at Sep 1 2015 16:02:51
%ENV:
PERL_CPANM_OPT="--mirror file:///home/digibib/pinto/repo --mirror ftp://mirror.netcologne.de/cpan/ --mirror-only"
@INC:
/home/digibib/.plenv/versions/5.22.0/lib/perl5/site_perl/5.22.0/x86_64-linux
/home/digibib/.plenv/versions/5.22.0/lib/perl5/site_perl/5.22.0
/home/digibib/.plenv/versions/5.22.0/lib/perl5/5.22.0/x86_64-linux
/home/digibib/.plenv/versions/5.22.0/lib/perl5/5.22.0
.