Current-Users archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: pcc, -fPIC



On Wed, 7 Sep 2011, bch%methodlogic.net@localhost wrote:

> I'm having issue w/ pcc creating .so's. Specifically, when using the -fPIC
> flag, ld(1) complains that the binaries are not compiled w/ -fPIC. I've
> got a fairly recent -current, pcc version 1.1.0.DEVEL 20110901.
>
> I don't actually use pcc that often, so can't say this used to work but
> broke afer [date xyz].

I run i386 builds with pcc fairly regularly (partial builds anyway, I have
a script that runs through most of what I know can be compiled) and have
seen no problems like that lately, what arch are you using and how do you
invoke pcc?

below are the two alternative invocations that I use, in libbsdmalloc with
the pcc from -current (you don't need MKLINT=no MKMAN=no I just added that
to cut down on output)

iain


% make CC=pcc USETOOLS=no MKLINT=no MKMAN=no
#   compile  libbsdmalloc/malloc.o
pcc -O2 -std=gnu99  -Wall -Wstrict-prototypes -Wmissing-prototypes 
-Wpointer-arith -Wno-sign-compare  -Wno-traditional  -Wa,--fatal-warnings 
-Wreturn-type -Wswitch -Wshadow -Werror     -D_REENT -D_REENTRANT 
-I/home/plunky/src/lib/libbsdmalloc/../libc/include/  -c    malloc.c -o malloc.o
objcopy -x malloc.o
#   compile  libbsdmalloc/malloc.pico
pcc -O2 -std=gnu99  -Wall -Wstrict-prototypes -Wmissing-prototypes 
-Wpointer-arith -Wno-sign-compare  -Wno-traditional  -Wa,--fatal-warnings 
-Wreturn-type -Wswitch -Wshadow -Werror     -D_REENT -D_REENTRANT 
-I/home/plunky/src/lib/libbsdmalloc/../libc/include/  -c    -fPIC -DPIC 
malloc.c -o malloc.pico
objcopy -x malloc.pico
#   compile  libbsdmalloc/malloc.po
pcc -O2 -std=gnu99  -Wall -Wstrict-prototypes -Wmissing-prototypes 
-Wpointer-arith -Wno-sign-compare  -Wno-traditional  -Wa,--fatal-warnings 
-Wreturn-type -Wswitch -Wshadow -Werror     -D_REENT -D_REENTRANT 
-I/home/plunky/src/lib/libbsdmalloc/../libc/include/  -c -DGPROF -DPROF    -pg 
malloc.c -o malloc.po
objcopy -X malloc.po
#     build  libbsdmalloc/libbsdmalloc.a
rm -f libbsdmalloc.a
ar crs libbsdmalloc.a `NM=nm lorder malloc.o | tsort -q`
#     build  libbsdmalloc/libbsdmalloc_p.a
rm -f libbsdmalloc_p.a
ar crs libbsdmalloc_p.a `NM=nm lorder malloc.po | tsort -q`
#     build  libbsdmalloc/libbsdmalloc_pic.a
rm -f libbsdmalloc_pic.a
ar crs libbsdmalloc_pic.a `NM=nm lorder malloc.pico | tsort -q`
#     build  libbsdmalloc/libbsdmalloc.so.0.0
rm -f libbsdmalloc.so.0.0
pcc  -Wl,-x -shared -Wl,-soname,libbsdmalloc.so.0 -Wl,--warn-shared-textrel    
-o libbsdmalloc.so.0.0  -Wl,-rpath-link,/lib  -L=/lib  -Wl,--whole-archive 
libbsdmalloc_pic.a -Wl,--no-whole-archive
ln -sf libbsdmalloc.so.0.0 libbsdmalloc.so.0.tmp
mv -f libbsdmalloc.so.0.tmp libbsdmalloc.so.0
ln -sf libbsdmalloc.so.0.0 libbsdmalloc.so.tmp
mv -f libbsdmalloc.so.tmp libbsdmalloc.so




% make HAVE_PCC= MKLINT=no MKMAN=no
#   compile  libbsdmalloc/malloc.o
/usr/tools/bin/i486--netbsdelf-pcc -O2 -std=gnu99  -Wall -Wstrict-prototypes 
-Wmissing-prototypes -Wpointer-arith -Wno-sign-compare  -Wno-traditional  
-Wa,--fatal-warnings -Wreturn-type -Wswitch -Wshadow -Werror     --sysroot=/ 
-D_REENT -D_REENTRANT -I/home/plunky/src/lib/libbsdmalloc/../libc/include/  -c  
  malloc.c -o malloc.o
/usr/tools/bin/i486--netbsdelf-objcopy -x malloc.o
#   compile  libbsdmalloc/malloc.pico
/usr/tools/bin/i486--netbsdelf-pcc -O2 -std=gnu99  -Wall -Wstrict-prototypes 
-Wmissing-prototypes -Wpointer-arith -Wno-sign-compare  -Wno-traditional  
-Wa,--fatal-warnings -Wreturn-type -Wswitch -Wshadow -Werror     --sysroot=/ 
-D_REENT -D_REENTRANT -I/home/plunky/src/lib/libbsdmalloc/../libc/include/  -c  
  -fPIC -DPIC malloc.c -o malloc.pico
/usr/tools/bin/i486--netbsdelf-objcopy -x malloc.pico
#   compile  libbsdmalloc/malloc.po
/usr/tools/bin/i486--netbsdelf-pcc -O2 -std=gnu99  -Wall -Wstrict-prototypes 
-Wmissing-prototypes -Wpointer-arith -Wno-sign-compare  -Wno-traditional  
-Wa,--fatal-warnings -Wreturn-type -Wswitch -Wshadow -Werror     --sysroot=/ 
-D_REENT -D_REENTRANT -I/home/plunky/src/lib/libbsdmalloc/../libc/include/  -c 
-DGPROF -DPROF    -pg malloc.c -o malloc.po
/usr/tools/bin/i486--netbsdelf-objcopy -X malloc.po
#     build  libbsdmalloc/libbsdmalloc.a
rm -f libbsdmalloc.a
/usr/tools/bin/i486--netbsdelf-ar crs libbsdmalloc.a 
`NM=/usr/tools/bin/i486--netbsdelf-nm NM=/usr/tools/bin/i486--netbsdelf-nm 
MKTEMP=/usr/tools/bin/nbmktemp /usr/tools/bin/nblorder malloc.o | 
/usr/tools/bin/nbtsort -q`
#     build  libbsdmalloc/libbsdmalloc_p.a
rm -f libbsdmalloc_p.a
/usr/tools/bin/i486--netbsdelf-ar crs libbsdmalloc_p.a 
`NM=/usr/tools/bin/i486--netbsdelf-nm NM=/usr/tools/bin/i486--netbsdelf-nm 
MKTEMP=/usr/tools/bin/nbmktemp /usr/tools/bin/nblorder malloc.po | 
/usr/tools/bin/nbtsort -q`
#     build  libbsdmalloc/libbsdmalloc_pic.a
rm -f libbsdmalloc_pic.a
/usr/tools/bin/i486--netbsdelf-ar crs libbsdmalloc_pic.a 
`NM=/usr/tools/bin/i486--netbsdelf-nm NM=/usr/tools/bin/i486--netbsdelf-nm 
MKTEMP=/usr/tools/bin/nbmktemp /usr/tools/bin/nblorder malloc.pico | 
/usr/tools/bin/nbtsort -q`
#     build  libbsdmalloc/libbsdmalloc.so.0.0
rm -f libbsdmalloc.so.0.0
/usr/tools/bin/i486--netbsdelf-pcc  -Wl,-x -shared 
-Wl,-soname,libbsdmalloc.so.0 -Wl,--warn-shared-textrel  --sysroot=/   -o 
libbsdmalloc.so.0.0  -Wl,-rpath-link,/lib  -L=/lib  -Wl,--whole-archive 
libbsdmalloc_pic.a -Wl,--no-whole-archive
ln -sf libbsdmalloc.so.0.0 libbsdmalloc.so.0.tmp
mv -f libbsdmalloc.so.0.tmp libbsdmalloc.so.0
ln -sf libbsdmalloc.so.0.0 libbsdmalloc.so.tmp
mv -f libbsdmalloc.so.tmp libbsdmalloc.so


Home | Main Index | Thread Index | Old Index