# New Ticket Created by  Andy Dougherty 
# Please include the string:  [perl #30320]
# in the subject line of all future correspondence about this issue. 
# <URL: http://rt.perl.org:80/rt3/Ticket/Display.html?id=30320 >


This patch allows languages/m4 to build for me.  It removes some
gcc-specific flags (e.g. -fpic and -shared) and replaces them with the
appropriate items determined by Configure.pl.  For the case of -fpic,
Configure.pl didn't actually determine anything, so I changed
Configure.pl to pull the appropriate value from perl5's $Config.

This patch assumes my previous Configure.pl patch for c++ detection has
been included.

Finally, this patch removes #include <error.h> from m4/src/eval.c.  My
Solaris system doesn't have such a header, and it didn't seem to be
used anyway.

diff -r -u parrot-current/config/gen/makefiles/m4.in 
parrot-andy/config/gen/makefiles/m4.in
--- parrot-current/config/gen/makefiles/m4.in   Thu Jun  3 11:00:05 2004
+++ parrot-andy/config/gen/makefiles/m4.in      Wed Jun 16 15:42:25 2004
@@ -6,6 +6,20 @@
 PERL   = ${perl}
 RM_RF  = ${rm_rf}

+CC     = ${cc}
+CFLAGS         = ${ccflags} -I../../include
+CC_SHARED = ${cc_shared}    # e.g. -fpic
+DEBUG  = ${cc_debug}
+WARN   = ${ccwarn}
+
+LINK   = ${link}
+LINKFLAGS = ${linkflags}
+
+# Shared-library building
+LD     = ${ld}
+LDFLAGS = ${ldflags}
+LD_SHARED = ${ld_shared}   # e.g. -shared
+
 # some constants
 M4_EVAL_COMPILER_SO = ../../runtime/parrot/dynext/m4_eval_compiler.so

@@ -46,7 +60,8 @@
        $(LN_SF) src/m4.pbc

 $(M4_EVAL_COMPILER_SO): src/eval.c
-       $(CC) -shared -fpic src/eval.c -o $@ -g -Wall -I../../include
+       $(CC) $(CFLAGS) $(CC_SHARED) $(DEBUG) $(WARN) -c src/eval.c
+       $(LD) $(LD_SHARED) $(LDFLAGS) -o $@ eval.o

 src/m4.imc: src/builtin.imc src/freeze.imc src/input.imc src/macro.imc
        touch $@
diff -r -u parrot-current/config/init/data.pl parrot-andy/config/init/data.pl
--- parrot-current/config/init/data.pl  Wed Jun 16 17:11:29 2004
+++ parrot-andy/config/init/data.pl     Wed Jun 16 15:46:16 2004
@@ -45,6 +45,9 @@
     cc            => $Config{cc},
     ccflags       => $Config{ccflags},
     ccwarn        => exists($Config{ccwarn}) ? $Config{ccwarn} : '',
+    # Flags used to indicate this object file is to be compiled
+    # with position-independent code suitable for dynamic loading.
+    cc_shared     => $Config{cccdlflags},  # e.g. -fpic for GNU cc.

     # C++ compiler -- used to compile parts of ICU.  ICU's configure
     # will try to find a suitable compiler, but it prefers GNU c++ over
@@ -85,7 +88,7 @@

     ld_out        => '-o ',               # ld output file
     ld_debug      => '-g ',               # include debug info in executable
-    ld_shared     => $Config{lddlflags},
+    ld_shared     => $Config{lddlflags},  # e.g. -shared for GNU cc.
     ld_shared_flags=> '', # What is this, exactly?  For GNU ld, it was
     # '-Wl,-soname,libparrot$(SO)'

diff -r -u parrot-current/languages/m4/src/eval.c parrot-andy/languages/m4/src/eval.c
--- parrot-current/languages/m4/src/eval.c      Thu Jun  3 11:00:09 2004
+++ parrot-andy/languages/m4/src/eval.c Wed Jun 16 15:16:22 2004
@@ -19,7 +19,6 @@
 */

 #include <stdlib.h>
-#include <error.h>
 #include <ctype.h>
 typedef int boolean;
 int warning_status;

-- 
    Andy Dougherty              [EMAIL PROTECTED]

Reply via email to