Re: Building PIC fortran libraries?
> > The fortrain library libg2c is built as a non-PIC archive in the default
> > gcc package (at least it was on ia64). On some architectures, linking
> > non-PIC code into PIC shared objects is not allowed (ia64, hppa,
> > mips{,el}, etc). This causes applications that try to build fortrain
> > shared objects (pdl for example) to fail.
> >
> > Would it be possible to build libg2c as a PIC library?
>
> see #104250. But this is another reason. I'll backport it, if it's
> in 3.1 ;)
FYI I've applied the attached patch to gcc-2.96 for IA64. It is a rather
simple-minded brute force way for us to get things like gimp to build :)
This will be in gcc-2.96_2.96-5
randolph
--
Debian Developer <tausq@debian.org>
http://www.TauSq.org/
#! /bin/sh -e
# All lines beginning with `# DPATCH:' are a description of the patch.
# DP: Build libf2c with PIC objects
dir=
if [ $# -eq 3 -a "$2" = '-d' ]; then
pdir="-d $3"
dir="$3/"
elif [ $# -ne 1 ]; then
echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
exit 1
fi
case "$1" in
-patch)
patch $pdir -f --no-backup-if-mismatch -p0 < $0
#cd ${dir}gcc && autoconf
;;
-unpatch)
patch $pdir -f --no-backup-if-mismatch -R -p0 < $0
#rm ${dir}gcc/configure
;;
*)
echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
exit 1
esac
exit 0
diff -uNr libf2c.orig/Makefile.in libf2c/Makefile.in
--- libf2c.orig/Makefile.in Sat Aug 25 12:22:53 2001
+++ libf2c/Makefile.in Sat Aug 25 12:23:11 2001
@@ -57,6 +57,8 @@
CC = @CC@
CFLAGS = @CFLAGS@
+PICFLAG=-fPIC -DPIC
+
# List of variables to pass to sub-makes.
# Quote this way so that it can be used to set shell variables too.
# Currently no use for PICFLAG, RUNTESTFLAGS -- check usage.
diff -uNr libf2c.orig/libF77/Makefile.in libf2c/libF77/Makefile.in
--- libf2c.orig/libF77/Makefile.in Sat Aug 25 12:22:53 2001
+++ libf2c/libF77/Makefile.in Sat Aug 25 12:23:43 2001
@@ -46,7 +46,7 @@
#### End of system configuration section. ####
-ALL_CFLAGS = -I. -I$(srcdir) -I$(G2C_H_DIR) -I$(F2C_H_DIR) $(CPPFLAGS) $(DEFS) $(CFLAGS)
+ALL_CFLAGS = -I. -I$(srcdir) -I$(G2C_H_DIR) -I$(F2C_H_DIR) $(CPPFLAGS) $(DEFS) $(CFLAGS) $(PICFLAG)
.SUFFIXES:
.SUFFIXES: .c .o
diff -uNr libf2c.orig/libI77/Makefile.in libf2c/libI77/Makefile.in
--- libf2c.orig/libI77/Makefile.in Sat Aug 25 12:22:53 2001
+++ libf2c/libI77/Makefile.in Sat Aug 25 12:23:56 2001
@@ -47,7 +47,7 @@
#### End of system configuration section. ####
ALL_CFLAGS = -I. -I$(srcdir) -I$(G2C_H_DIR) -I$(F2C_H_DIR) $(CPPFLAGS) \
- $(DEFS) $(CFLAGS)
+ $(DEFS) $(CFLAGS) $(PICFLAG)
.SUFFIXES:
.SUFFIXES: .c .o
diff -uNr libf2c.orig/libU77/Makefile.in libf2c/libU77/Makefile.in
--- libf2c.orig/libU77/Makefile.in Sat Aug 25 12:22:53 2001
+++ libf2c/libU77/Makefile.in Sat Aug 25 12:24:08 2001
@@ -47,7 +47,7 @@
# fio.h is in libI77. config.h is in `.'.
ALL_CFLAGS = -I. -I$(srcdir) -I$(F2C_H_DIR)/libI77 -I$(G2C_H_DIR) \
- -I$(F2C_H_DIR) $(CPPFLAGS) $(DEFS) $(CFLAGS)
+ -I$(F2C_H_DIR) $(CPPFLAGS) $(DEFS) $(CFLAGS) $(PICFLAG)
# This could probably be done more elegantly, but it's currently
# just for running the u77-test test.
Reply to: