> > 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 <[EMAIL PROTECTED]> 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.