>  > 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.


Reply via email to