Subject: | Makefile does not respect $CFLAGS |
Date: | Tue, 06 Nov 2012 01:27:34 -0500 |
To: | bug-Gettext [...] rt.cpan.org |
From: | Dennis Clarke <dclarke [...] blastwave.org> |
By default the Makefile created results in a default 32-bit output and thus ignores CFLAGS.
Thus :
$ ls -lpa
total 41
drwxr-xr-x 4 dclarke other 9 Nov 6 06:14 ./
drwxr-xr-x 3 dclarke other 3 Nov 6 05:52 ../
-rw-r--r-- 1 dclarke other 1581 Jan 30 2005 Makefile.PL
-rw-r--r-- 1 dclarke other 6402 Jun 1 2005 README
-rw-r----- 1 dclarke other 139 Nov 6 05:57 config.h
-rw-r--r-- 1 dclarke other 6834 Jun 1 2005 gettext.pm
-rw-r--r-- 1 dclarke other 2431 Jun 1 2005 gettext.xs
drwxr-xr-x 2 dclarke other 7 Jun 1 2005 t/
drwxr-xr-x 2 dclarke other 5 Jun 1 2005 test_data/
$
$ perl -W Makefile.PL
Name "main::SAVE" used only once: possible typo at Makefile.PL line 51.
checking for gettext... yes
checking for dgettext... yes
checking for ngettext... yes
checking for bind_textdomain_codeset... yes
closedir() attempted on invalid dirhandle GEN0 at /usr/local/lib/perl5/5.16.2/DirHandle.pm line 51.
Writing Makefile for Locale::gettext
Writing MYMETA.yml and MYMETA.json
$ ls -lpa
total 73
drwxr-xr-x 4 dclarke other 12 Nov 6 06:15 ./
drwxr-xr-x 3 dclarke other 3 Nov 6 05:52 ../
-rw-r--r-- 1 dclarke other 794 Nov 6 06:15 MYMETA.json
-rw-r--r-- 1 dclarke other 432 Nov 6 06:15 MYMETA.yml
-rw-r--r-- 1 dclarke other 30363 Nov 6 06:15 Makefile
-rw-r--r-- 1 dclarke other 1581 Jan 30 2005 Makefile.PL
-rw-r--r-- 1 dclarke other 6402 Jun 1 2005 README
-rw-r----- 1 dclarke other 139 Nov 6 06:15 config.h
-rw-r--r-- 1 dclarke other 6834 Jun 1 2005 gettext.pm
-rw-r--r-- 1 dclarke other 2431 Jun 1 2005 gettext.xs
drwxr-xr-x 2 dclarke other 7 Jun 1 2005 t/
drwxr-xr-x 2 dclarke other 5 Jun 1 2005 test_data/
$
$ gmake
cp gettext.pm blib/lib/Locale/gettext.pm
/usr/local/bin/perl /usr/local/lib/perl5/5.16.2/ExtUtils/xsubpp -typemap /usr/local/lib/perl5/5.16.2/ExtUtils/typemap gettext.xs > gettext.xsc && mv gettext.xsc gettext.c
Please specify prototyping behavior for gettext.xs (see perlxs manual)
cc -c -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -DPERL_USE_SAFE_PUTENV -O -DVERSION=\"1.05\" -DXS_VERSION=\"1.05\" -KPIC "-I/usr/local/lib/perl5/5.16.2/sun4-solaris/CORE" gettext.c
Running Mkbootstrap for Locale::gettext ()
chmod 644 gettext.bs
rm -f blib/arch/auto/Locale/gettext/gettext.so
cc -G -L/usr/lib -L/usr/ccs/lib -L/opt/solarisstudio12.3/prod/lib/sparc -L/opt/solarisstudio12.3/prod/lib -L/lib -L/usr/local/lib gettext.o -o blib/arch/auto/Locale/gettext/gettext.so \
\
chmod 755 blib/arch/auto/Locale/gettext/gettext.so
cp gettext.bs blib/arch/auto/Locale/gettext/gettext.bs
chmod 644 blib/arch/auto/Locale/gettext/gettext.bs
Manifying blib/man3/Locale::gettext.3
$
$ find . -type f | xargs file | grep ELF
./blib/arch/auto/Locale/gettext/gettext.so: ELF 32-bit MSB dynamic lib SPARC32PLUS Version 1, V8+ Required, dynamically linked, not stripped
./gettext.o: ELF 32-bit MSB relocatable SPARC32PLUS Version 1, V8+ Required
$ gmake clean
rm -f \
*.a core \
core.[0-9] blib/arch/auto/Locale/gettext/extralibs.all \
core.[0-9][0-9] gettext.bso \
pm_to_blib.ts MYMETA.json \
core.[0-9][0-9][0-9][0-9] MYMETA.yml \
gettext.x gettext.bs \
perl tmon.out \
*.o pm_to_blib \
blib/arch/auto/Locale/gettext/extralibs.ld blibdirs.ts \
core.[0-9][0-9][0-9][0-9][0-9] *perl.core \
core.*perl.*.? Makefile.aperl \
gettext.def perl \
core.[0-9][0-9][0-9] mon.out \
libgettext.def perlmain.c \
perl.exe so_locations \
gettext.exp gettext.c
rm -rf \
blib
mv Makefile Makefile.old > /dev/null 2>&1
$
$ echo $CFLAGS
-errfmt=error -erroff=%none -errshort=full -xstrconst -xildoff -m64 -xmemalign=8s -xnolibmil -Xa -xcode=pic32 -xregs=no%appl -xlibmieee -mc -g -xs -ftrap=%none -Qy -xbuiltin=%none -xdebugformat=dwarf -xunroll=1 -xtarget=ultraT2 -xcache=8/16/4:4096/64/16 -D_TS_ERRNO -D_POSIX_PTHREAD_SEMANTICS -D_LARGEFILE64_SOURCE
$
$ perl Makefile.PL
checking for gettext... yes
checking for dgettext... yes
checking for ngettext... yes
checking for bind_textdomain_codeset... yes
Writing Makefile for Locale::gettext
Writing MYMETA.yml and MYMETA.json
$ cp Makefile Makefile.backup
$
I then tried to hack in a few changes :
$ diff Makefile.backup Makefile
30,31c30,34
< CCCDLFLAGS = -KPIC
< CCDLFLAGS =
---
Show quoted text
>
> CFLAGS = -errfmt=error -erroff=%none -errshort=full -xstrconst -xildoff -m64 -xmemalign=8s -xnolibmil -Xa -xcode=pic32 -xregs=no%appl -xlibmieee -mc -g -xs -ftrap=%none -Qy -xbuiltin=%none -xdebugformat=dwarf -xunroll=1 -xtarget=ultraT2 -xcache=8/16/4:4096/64/16 -D_TS_ERRNO -D_POSIX_PTHREAD_SEMANTICS -D_LARGEFILE64_SOURCE
>
> CCCDLFLAGS = $(CFLAGS) -KPIC
> CCDLFLAGS = $(CFLAGS)
275c278
< CCFLAGS = -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -DPERL_USE_SAFE_PUTENV
---
Show quoted text> CCFLAGS = $(CFLAGS) -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -DPERL_USE_SAFE_PUTENV
324c327
< $(CCCMD) $(CCCDLFLAGS) "-I$(PERL_INC)" $(PASTHRU_DEFINE) $(DEFINE) $*.c
---
Show quoted text> $(CCCMD) $(CFLAGS) $(CCCDLFLAGS) "-I$(PERL_INC)" $(PASTHRU_DEFINE) $(DEFINE) $*.c
$
this resulted in :
$ gmake
cp gettext.pm blib/lib/Locale/gettext.pm
/usr/local/bin/perl /usr/local/lib/perl5/5.16.2/ExtUtils/xsubpp -typemap /usr/local/lib/perl5/5.16.2/ExtUtils/typemap gettext.xs > gettext.xsc && mv gettext.xsc gettext.c
Please specify prototyping behavior for gettext.xs (see perlxs manual)
cc -c -errfmt=error -erroff=%none -errshort=full -xstrconst -xildoff -m64 -xmemalign=8s -xnolibmil -Xa -xcode=pic32 -xregs=no%appl -xlibmieee -mc -g -xs -ftrap=%none -Qy -xbuiltin=%none -xdebugformat=dwarf -xunroll=1 -xtarget=ultraT2 -xcache=8/16/4:4096/64/16 -D_TS_ERRNO -D_POSIX_PTHREAD_SEMANTICS -D_LARGEFILE64_SOURCE -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -DPERL_USE_SAFE_PUTENV -O -DVERSION=\"1.05\" -DXS_VERSION=\"1.05\" -errfmt=error -erroff=%none -errshort=full -xstrconst -xildoff -m64 -xmemalign=8s -xnolibmil -Xa -xcode=pic32 -xregs=no%appl -xlibmieee -mc -g -xs -ftrap=%none -Qy -xbuiltin=%none -xdebugformat=dwarf -xunroll=1 -xtarget=ultraT2 -xcache=8/16/4:4096/64/16 -D_TS_ERRNO -D_POSIX_PTHREAD_SEMANTICS -D_LARGEFILE64_SOURCE -errfmt=error -erroff=%none -errshort=full -xstrconst -xildoff -m64 -xmemalign=8s -xnolibmil -Xa -xcode=pic32 -xregs=no%appl -xlibmieee -mc -g -xs -ftrap=%none -Qy -xbuiltin=%none -xdebugformat=dwarf -xunroll=1 -xtarge
t=ultraT2 -xcache=8/16/4:4096/64/16 -D_TS_ERRNO -D_POSIX_PTHREAD_SEMANTICS -D_LARGEFILE64_SOURCE -KPIC "-I/usr/local/lib/perl5/5.16.2/sun4-solaris/CORE" gettext.c
cc: Warning: multiple use of -Q option, previous one discarded.
cc: Warning: multiple use of -Q option, previous one discarded.
Running Mkbootstrap for Locale::gettext ()
chmod 644 gettext.bs
rm -f blib/arch/auto/Locale/gettext/gettext.so
cc -G -L/usr/lib -L/usr/ccs/lib -L/opt/solarisstudio12.3/prod/lib/sparc -L/opt/solarisstudio12.3/prod/lib -L/lib -L/usr/local/lib gettext.o -o blib/arch/auto/Locale/gettext/gettext.so \
\
ld: fatal: file gettext.o: wrong ELF class: ELFCLASS64
ld: fatal: file processing errors. No output written to blib/arch/auto/Locale/gettext/gettext.so
gmake: *** [blib/arch/auto/Locale/gettext/gettext.so] Error 2
$
I am on the right track but clearly missing a step.
Dennis