gcl-devel
[Top][All Lists]
Advanced

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

[Gcl-devel] Re: GCL on FreeBSD - Working!


From: Mark Murray
Subject: [Gcl-devel] Re: GCL on FreeBSD - Working!
Date: Thu, 18 Sep 2003 08:54:25 +0100

Camm Maguire writes:
> 1) Detail what you did to create your working build, and post
>    configure and build output.

I've enclosed the patches (the important bits of which I got from
the GCL-Devel list.

> 2) Does your build work with the NetBSD sparc guy too?

I doubt it. :-(

> 3) Other configure options working?  BFD linking?  ANSI? cust-reloc?
>    dlopen? 

Only the custom one. Here is the full set of config options in the
FreeBSD port build:

CONFIGURE_ARGS=--prefix=${PREFIX} \
        --enable-machine=FreeBSD \
        --enable-ansi \
        --infodir=${PREFIX}/info \
        --enable-info=${PREFIX}/info \
        --enable-tkconfig=${LOCALBASE}/lib/tk8.4 \
        --enable-tclconfig=${LOCALBASE}/lib/tcl8.4 \
        --with-x \
        --x-includes=${X11BASE}/include \
        --x-libraries=${X11BASE}/lib \
        --disable-dlopen \
        --disable-dynsysbfd \
        --disable-statsysbfd \
        --disable-locbfd \
        --enable-custreloc

At a later stage, I intend to make some of them (Tk, X, ANSI) optional.

The --enable-dlopen option comes the closest to building (if you don't
use --enable-custreloc, which works properly); I posted the the error
to this list a week or two ago. The BFD options fail horribly.

> 4) Would you like to volunteer as a GCL developer to keep this current
>    and working?  We'd prefer if there were no special build
>    instructions outside of './configure <options> && make && make
>    install', otherwise we need to commit some fixes in CVS.  

No problem :-). Please bear in mind that I am a FreeBSD hacker, C
programmer, maths student and cryptographic engineer. I am NOT a
lisp programmer, and I have very little access to Linux (RedHat 7.n
at work). If that is OK with you, then I'm happy.

> 5) It would be preferable to centralize the .h info around linux.h,
>    with specific overrides in a (small) xBSD.h, as the former is sure
>    to be well maintained and luckily BSD and linux are quite close.
>    Eventually, we'd like configure to replace the .h files altogether.
>    These .h files tend to silently break as GCL evolves unless one is
>    continually building the tree, or everything is automatically
>    detected.  We had someone work on freebsd before, got what they
>    wanted working, then disappeared -- I'd like to prevent a
>    recurrence, and your advice is appreciated.

I can certainly help here.

> 6) It would be great to have an autobuilt binary mirrored at our new
>    (temporary) distribution site: http://people.debian.org/~camm/gcl. 
>    Here is an example of the script we have cron'd on a solaris box:

I'll see if I can so something similar (but it will have to be for
FreeBSD-CURRENT).

M
--
Mark Murray
iumop ap!sdn w,I idlaH
--- ./configure.in.orig Sun Mar  2 15:23:17 2003
+++ ./configure.in      Sat Sep 13 23:52:23 2003
@@ -361,8 +361,8 @@
        # for subconfigurations
        CFLAGS=-g
 else
-       TO3FLAGS="-O6 -fomit-frame-pointer"
-       TO2FLAGS="-O"
+       TO3FLAGS="-fomit-frame-pointer"
+       TO2FLAGS=""
 fi
 
 AC_CHECK_PROGS(AWK,gawk nawk awk,"")
@@ -1266,30 +1266,30 @@
 
 if test -d ${TK_CONFIG_PREFIX}/tk${TK_VERSION} ; then
   TK_LIBRARY=${TK_CONFIG_PREFIX}/tk${TK_VERSION}
-  else
+else
   if test -d ${TK_CONFIG_PREFIX}/../tk${TK_VERSION} ; then
     TK_LIBRARY=${TK_CONFIG_PREFIX}/../tk${TK_VERSION}
   fi
 fi
 if test -d ${TK_CONFIG_PREFIX}/tcl${TCL_VERSION} ; then
   TCL_LIBRARY=${TK_CONFIG_PREFIX}/tcl${TCL_VERSION}
-  else
+else
   if test -d ${TK_CONFIG_PREFIX}/../tcl${TCL_VERSION} ; then
     TCL_LIBRARY=${TK_CONFIG_PREFIX}/../tcl${TCL_VERSION}
   fi
 fi
 if test -f ${TK_CONFIG_PREFIX}/../include/tk.h ; then
   TK_INCLUDE=-I${TK_CONFIG_PREFIX}/../include
-  else
-  if test -f /usr/include/tcl${TCL_VERSION}/tk.h ; then
-    TK_INCLUDE=-I/usr/include/tcl${TCL_VERSION}
+else
+  if test -f ${TK_CONFIG_PREFIX}/../../include/tk${TK_VERSION}/tk.h ; then
+    TK_INCLUDE=-I${TK_CONFIG_PREFIX}/../../include/tk${TK_VERSION}
   fi   
 fi
 if test -f ${TCL_CONFIG_PREFIX}/../include/tcl.h ; then
   TCL_INCLUDE=-I${TCL_CONFIG_PREFIX}/../include
-  else
-  if test -f /usr/include/tcl${TCL_VERSION}/tcl.h ; then
-    TCL_INCLUDE=-I/usr/include/tcl${TCL_VERSION}
+else
+  if test -f ${TCL_CONFIG_PREFIX}/../../include/tcl${TCL_VERSION}/tcl.h ; then
+    TCL_INCLUDE=-I${TCL_CONFIG_PREFIX}/../../include/tcl${TCL_VERSION}
   fi
 fi
 AC_CHECK_LIB(lieee,main,have_ieee=1,have_ieee=0)
--- ./h/FreeBSD.defs.orig       Fri Nov  1 04:09:34 2002
+++ ./h/FreeBSD.defs    Sun Sep 14 01:49:46 2003
@@ -1,26 +1,16 @@
-# Machine dependent makefile definitions for intel 386,486 running 386bsd
+# Machine dependent makefile definitions for 386bsd
 # Ported to FreeBSD 2.0 by Jeffrey Hsu (address@hidden).
 # Hacked September-93 by Paul F. Werkowski for 386BSD 0.1 + Patchkit 0.2.4
+# Hacked September-2003 by Juergen Weiss, Mark Murray for FreeBSD-5 CURRENT
 
-LBINDIR=/usr/local/bin
-
-OFLAG  = -pipe -O2 
-CFLAGS = -fwritable-strings -fomit-frame-pointer -DVOL=volatile -I$(GCLDIR)/o 
-I/usr/local/lib/gcl-2.0/h -fsigned-char -I/usr/local/lib
-LIBS    = -lm -L/usr/local/lib
-ODIR_DEBUG=
-NULLFILE=../h/twelve_null
+LBINDIR=${prefix}/bin
 
 # This CC string will be used for compilation of the system,
 # and also in the compiler::*cc* variable for later compilation of
 # lisp files.
-
-CC = gcc
+CC = gcc @@CFLAGS@@
 
 LDCC = $(CC) -static
-
-#  Use the mp.s file on 68k machine 
-MPFILES= $(MPDIR)/mpi-386.o $(MPDIR)/libmport.a
-GNULIB1=/usr/lib/libgcc.a
 
 # Enable the fastloading mechanism which does not use ld -A
 # requires c/rel_.. machine dependent code.
--- ./h/FreeBSD.h.orig  Fri Nov  1 04:09:34 2002
+++ ./h/FreeBSD.h       Sun Sep 14 01:51:55 2003
@@ -1,5 +1,5 @@
 /*
- * FreeBSD.h for gcl 1.1
+ * FreeBSD.h for gcl
  *
  * Ported by Jeffrey Hsu (address@hidden).
  *  Looked at previous versions by Hsu, Werkowsksi, Tobin, and Mogart.
@@ -8,6 +8,50 @@
 
 #include "bsd.h"
 
+#ifndef __ELF__
+#error FreeBSD systems use ELF
+#endif
+
+#undef HAVE_AOUT
+#define HAVE_AOUT <elf.h>
+#define HAVE_ELF
+
+#if defined(__i386__)
+#define __ELF_NATIVE_CLASS 32
+#endif
+#if defined(__alpha__) || defined(__sparc64__) || defined(__ia64__)
+#define __ELF_NATIVE_CLASS 64
+#endif
+#define mjoin(a,b) a ## b
+#define Mjoin(a,b) mjoin(a,b)
+#if !defined(ElfW)
+#define ElfW(a) Mjoin(Elf,Mjoin(__ELF_NATIVE_CLASS,Mjoin(_,a)))
+#endif
+#define ELFW(a) Mjoin(ELF,Mjoin(__ELF_NATIVE_CLASS,Mjoin(_,a)))
+
+/* Seeking to the end of ELF data is a little messy... */
+#include <link.h>
+#define SEEK_TO_END_OFILE(fp)\
+  do { \
+       long offset = 0, endofelf; int j; \
+       ElfW(Ehdr) eheader; ElfW(Shdr) shdr; \
+        fseek(fp, 0, SEEK_SET); \
+        fread(&eheader, sizeof(eheader), 1, fp); \
+  /* in case the headers themselves come AFTER the actual sections */ \
+       endofelf=offset = eheader.e_shoff+ eheader.e_shentsize 
*eheader.e_shnum;\
+        fseek(fp, eheader.e_shoff, SEEK_SET); \
+       if ( eheader.e_shentsize != sizeof(ElfW(Shdr)) ) \
+         { FEerror("Bad ELF section header size",0); } \
+        for ( j = 0; j < eheader.e_shnum; j++ ) \
+         { fread(&shdr,eheader.e_shentsize,1,fp); \
+            if ( (shdr.sh_offset > offset) && (shdr.sh_type != SHT_NOBITS) ) \
+             { offset = shdr.sh_offset; endofelf = offset+shdr.sh_size; } \
+         } \
+       if ( fseek(fp, endofelf, SEEK_SET) ) \
+           FEerror("Bad ELF file",0); \
+      } while(0)
+
+
 #undef LD_COMMAND
 #define LD_COMMAND(command,main,start,input,ldarg,output) \
   sprintf(command, "ld -dc -N -x -A %s -T %x %s %s -o %s", \
@@ -39,17 +83,9 @@
 #endif
 
 #define DATA_BEGIN (char *) N_DATADDR(header);
-#define A_TEXT_OFFSET(x) (sizeof (struct exec))
-#define A_TEXT_SEEK(hdr) (N_TXTOFF(hdr) + A_TEXT_OFFSET(hdr))
-#define start_of_data() &etext
-#define start_of_text() ((char *)(sizeof(struct exec) + getpagesize()))
 
-#define UNIXSAVE "unexec.c"
-#ifdef UNIXSAVE 
- extern char etext;
-#endif
-
-#define RELOC_FILE "rel_sun3.c"        /* for SFASL - enabled in bsd.h */
+/*#define UNEXEC_USE_MAP_PRIVATE*/
+#define UNIXSAVE "unexelf.c"
 
 #ifdef CLOCKS_PER_SEC
 #define HZ CLOCKS_PER_SEC
@@ -67,7 +103,8 @@
 #define SETUP_SIG_STACK \
 { \
        static struct sigaltstack estack; \
-       if ((estack.ss_sp = malloc(SIGSTKSZ)) == NULL) \
+       if (estack.ss_sp == NULL && \
+           (estack.ss_sp = malloc(SIGSTKSZ)) == NULL) \
          perror("malloc"); \
        estack.ss_size = SIGSTKSZ; \
        estack.ss_flags = 0; \
--- h/gclincl.h.in.orig Wed Feb 26 15:26:41 2003
+++ h/gclincl.h.in      Mon Sep 15 17:18:53 2003
@@ -119,7 +119,14 @@
 #include <ieeefp.h>
 #define ISNORMAL(a) (fpclass(a)>=FP_NZERO)
 #else
+#define HAVE_FLOAT_H 1
+#ifdef HAVE_FLOAT_H
+#include <float.h>
+#define ISNORMAL(a) \
+       ((DBL_MIN<=(a) && (a)<=DBL_MAX) || (DBL_MIN<=(-a) && (-a)<=DBL_MAX))
+#else
 #error "No isnormal found"
+#endif
 #endif
 #endif
 #endif
--- info/gcl-si.texi.orig       Sun Sep 14 12:13:24 2003
+++ info/gcl-si.texi    Sun Sep 14 12:14:28 2003
@@ -19,6 +19,10 @@
 
 @setchapternewpage odd
 @ifinfo
address@hidden GNU Common Lisp
address@hidden
+* GCL Systems Internals: (gcl-si).     GCL SYSTEM INTERNALS Manual
address@hidden direntry
 This is a Texinfo GCL SYSTEM INTERNALS Manual
 
 Copyright 1994 William F. Schelter
--- info/makefile.orig  Fri Jan 24 18:55:23 2003
+++ info/makefile       Sun Sep 14 14:30:50 2003
@@ -1,19 +1,18 @@
 .SUFFIXES:
 .SUFFIXES: .info .dvi  .texi
 
-INFO_DIR=/usr/local/lib/info
+INFO_DIR=${prefix}/info/
 
 GCL_DVI=gcl-tk.dvi gcl-si.dvi gcl.dvi
 GCL_HTML=gcl-si_toc.html gcl-tk_toc.html gcl_toc.html
 
 -include ../makedefs
 
-all: gcl-tk.info gcl-si.info gcl.info $(GCL_DVI) $(GCL_HTML)
+all: gcl-tk.info gcl-si.info gcl.info
 
 .texi.info:
        rm -f $*.*gz
-       -$(MAKEINFO) $*.texi
-       - gzip $*.info-*
+       -$(MAKEINFO) --no-split $*.texi
 
 GCL_SI= number.texi sequence.texi character.texi list.texi io.texi \
        form.texi compile.texi symbol.texi system.texi structure.texi \
@@ -31,19 +30,19 @@
        TEXINPUTS=.:$$TEXINPUTS tex --interaction nonstopmode gcl-si.texi || 
true
 
 gcl-si.info:
-       -$(MAKEINFO) gcl-si.texi        
+       -$(MAKEINFO) --no-split gcl-si.texi     
 
 gcl-tk.dvi: ${GCL_TK} gcl-tk.texi
        TEXINPUTS=.:$$TEXINPUTS tex --interaction nonstopmode gcl-tk.texi || 
true
 
 gcl-tk.info: ${GCL_TK} gcl-tk.texi
-       -$(MAKEINFO) gcl-tk.texi
+       -$(MAKEINFO) --no-split gcl-tk.texi
 
 gcl.dvi: ${GCL_MAN} gcl.texi
        TEXINPUTS=.:$$TEXINPUTS tex --interaction nonstopmode gcl.texi || true
 
 gcl.info: ${GCL_MAN} gcl.texi
-       -$(MAKEINFO) gcl.texi
+       -$(MAKEINFO) --no-split gcl.texi
 
 gcl-si_toc.html:
        texi2html -split_chapter gcl-si.texi
@@ -58,22 +57,7 @@
        cp *.html /d/www/gcl
 
 install:
-       mkdir -p $(DESTDIR)${INFO_DIR}
-       [ -f $(DESTDIR)$(INFO_DIR)dir ] || touch $(DESTDIR)$(INFO_DIR)dir
-       ! grep -q gcl-si $(DESTDIR)${INFO_DIR}dir || \
-       echo "* GCL Doc: (gcl-si.info). GNU Common Lisp specific 
Documentation." >> $(DESTDIR)${INFO_DIR}dir
-       ! grep -q gcl-tk $(DESTDIR)${INFO_DIR}dir || \
-       echo "* GCL TK Doc: (gcl-tk.info).      TK window GCL interface." >> 
$(DESTDIR)${INFO_DIR}dir
-       ! grep -q gcl.info $(DESTDIR)${INFO_DIR}dir || \
-       echo "* GCL Ansi Doc: (gcl.info).  Ansi Common Lisp Specification." >> 
$(DESTDIR)${INFO_DIR}dir
        cp *.info* $(DESTDIR)${INFO_DIR}
-       mkdir -p $(DESTDIR)$(INFO_DIR)../doc/gcl-doc/gcl.html
-       mkdir -p $(DESTDIR)$(INFO_DIR)../doc/gcl-doc/gcl-si.html
-       mkdir -p $(DESTDIR)$(INFO_DIR)../doc/gcl-doc/gcl-tk.html
-       cp gcl_*html $(DESTDIR)$(INFO_DIR)../doc/gcl-doc/gcl.html
-       cp gcl-si_*html $(DESTDIR)$(INFO_DIR)../doc/gcl-doc/gcl-si.html
-       cp gcl-tk_*html $(DESTDIR)$(INFO_DIR)../doc/gcl-doc/gcl-tk.html
-       cp *dvi $(DESTDIR)$(INFO_DIR)../doc/gcl-doc
 
 FILE=gcl-si.texi
 srcs:
--- makedefc.in.orig    Sun Sep 14 12:02:18 2003
+++ makedefc.in Sun Sep 14 12:10:34 2003
@@ -16,13 +16,18 @@
 address@hidden@
 
 # where to place the info files
address@hidden@
address@hidden@/info
+
+# configure has a clever process for figuring out where Emacs
+# really expects to find site-lisp and default.el.  We use
+# these values instead to ensure that building with --prefix=PREFIX
+# will not make changes outside the specified tree. -twp
 
 # where to put emacs lisp files.
address@hidden@
address@hidden@/share/emacs/site-lisp
 
 # the default.el file
address@hidden@
address@hidden@/share/emacs/site-lisp/default.el
 
 # numerous TCL/TK variables culled from the tkConfig.sh and tclConfig.sh
 # if these are found.
--- makefile.orig       Sun Sep 14 13:48:53 2003
+++ makefile    Sun Sep 14 13:50:15 2003
@@ -162,10 +162,11 @@
        mkdir -p $(DESTDIR)$(prefix)/lib 
        mkdir -p $(DESTDIR)$(prefix)/bin
        mkdir -p $(DESTDIR)$(INSTALL_LIB_DIR)
+       mkdir -p $(DESTDIR)$(prefix)/info
        MINSTALL_LIB_DIR=`echo $(INSTALL_LIB_DIR) | sed -e 
'sX^\([a-z]\):X/\1Xg'` ; \
        $(MAKE) install-command "INSTALL_LIB_DIR=$(INSTALL_LIB_DIR)" 
"prefix=$(prefix)" "DESTDIR=$(DESTDIR)" "BINDIR=$$MINSTALL_LIB_DIR/unixport"
        rm -f $(DESTDIR)$(prefix)/bin/gcl.exe
-       tar cf - $(PORTDIR)/$(FLISP)$(EXE) info/*.info* $(LISP_LIB) \
+       tar cf - $(PORTDIR)/$(FLISP)$(EXE) $(LISP_LIB) \
        $(TCL_EXES)  |  (cd $(DESTDIR)$(INSTALL_LIB_DIR) ;tar xf -)
        if [ -e "unixport/rsym$(EXE)" ] ; then cp unixport/rsym$(EXE) 
$(DESTDIR)$(INSTALL_LIB_DIR)/unixport/ ; fi
 #      ln $(SYMB) $(INSTALL_LIB_DIR)/$(PORTDIR)/$(FLISP)$(EXE) \
--- ./o/readline.d.orig Sat Jul 20 08:10:56 2002
+++ ./o/readline.d      Sat Sep 13 23:52:24 2003
@@ -94,7 +94,7 @@
    the word to complete.  We can use the entire contents of rl_line_buffer
    in case we want to do some simple parsing.  Return the array of matches,
    or NULL if there aren't any. */
-extern char **completion_matches(char *,char *(*)(char *,int));
+/*extern char **completion_matches(char *,char *(*)(char *,int));*/
 static char **rl_completion(char *text, int start, int end) {
        return completion_matches(text, rl_completion_words);
 }
--- ./o/sfaslelf.c.orig Wed Jul 24 20:05:53 2002
+++ ./o/sfaslelf.c      Sat Sep 13 23:52:25 2003
@@ -23,7 +23,7 @@
  */
 
 
-#ifndef __linux__
+#if !defined(__linux__) && !defined(__FreeBSD__)
 #define ELF_TARGET_SPARC 1
 #endif
 
@@ -83,7 +83,7 @@
  if (!(symin=fopen(symfile,"r")))
    {perror(symfile);exit(1);};
  if(!fread((char *)&tab,sizeof(tab),1,symin))
-   FEerror("No header",0,0);
+   FEerror("No header",0);
  symbols=malloc(tab.tot_leng);
  c_table.alloc_length=( (PTABLE_EXTRA+ tab.n_symbols));
  (c_table.ptable) = (TABL *) malloc(sizeof(struct node) * 
c_table.alloc_length);
@@ -196,7 +196,7 @@
    file = fileno(fp);
 
    if (fstat (file, &stat_buf) == -1)
-     FEerror ("Can't fstat(~a): errno %d\n", 1,faslfile);
+     FEerror ("Can't fstat(~a): errno %d\n", 2,faslfile,0);
 
 
    if (use_mmap) {
@@ -303,7 +303,7 @@
    
    relocate_symbols(symbol_table,nsyms,file_h->e_shnum,&init_address);
    if (init_address < 0)
-     { FEerror(0,"Init address not found ");
+     { FEerror("Init address not found ",0);
      }
 
    { 
@@ -317,7 +317,7 @@
           {
             int index_to_relocate = shp->sh_info;
             if (symtab_index != shp->sh_link)
-              FEerror("unexpected symbol table used");
+              FEerror("unexpected symbol table used",0);
             the_start = start_address + section[index_to_relocate].start;
           }
 /*      else if (shp->sh_type == SHT_REL */
@@ -332,7 +332,7 @@
         else if ( (shp->sh_type == SHT_REL) || (shp->sh_type == SHT_RELA) )
           {  if (get_section_number(".rel.stab") == j)
                 continue;
-            FEerror("unknown rel type");
+            FEerror("unknown rel type",0);
           }
         else
           continue;
@@ -520,7 +520,7 @@
     else if (sh_type == SHT_REL)
       a = 0;
     else {
-      FEerror("relocate() error: unknown sh_type in ELF object");
+      FEerror("relocate() error: unknown sh_type in ELF object",0);
       a=0;
     }
     b = (unsigned int) the_start;
@@ -540,9 +540,9 @@
 /*      do_bfd_reloc(ELF32_R_TYPE(reloc_info->r_info),s+a,(unsigned int 
*)where); */
 /*  #else */
     switch(ELF32_R_TYPE(reloc_info->r_info)){
-#if (defined(__svr4__) || defined(__linux__)) && defined(__i386__)
+#if (defined(__svr4__) || defined(__linux__) || defined(__FreeBSD__)) && 
defined(__i386__)
     case     R_386_NONE:
-      FEerror("Unsupported ELF type R_386_NONE");
+      FEerror("Unsupported ELF type R_386_NONE",0);
       break;
 
     case     R_386_32:
@@ -556,40 +556,40 @@
       break;
 
     case     R_386_GOT32:
-      FEerror("Unsupported ELF type R_386_GOY32");
+      FEerror("Unsupported ELF type R_386_GOY32",0);
       break;
 
     case     R_386_PLT32:
-      FEerror("Unsupported ELF type R_386_PLT32");
+      FEerror("Unsupported ELF type R_386_PLT32",0);
       break;
 
     case     R_386_COPY:
-      FEerror("Unsupported ELF type R_386_COPY");
+      FEerror("Unsupported ELF type R_386_COPY",0);
       break;
 
     case     R_386_GLOB_DAT:
-      FEerror("Unsupported ELF type R_386_GLOB_DAT");
+      FEerror("Unsupported ELF type R_386_GLOB_DAT",0);
       break;
 
     case     R_386_JMP_SLOT:
-      FEerror("Unsupported ELF type R_386_JMP_SLOT");
+      FEerror("Unsupported ELF type R_386_JMP_SLOT",0);
       break;
 
     case     R_386_RELATIVE:
-      FEerror("Unsupported ELF type R_386_RELATIVE");
+      FEerror("Unsupported ELF type R_386_RELATIVE",0);
       break;
 
     case     R_386_GOTOFF:
-      FEerror("Unsupported ELF type R_386_GOTOFF");
+      FEerror("Unsupported ELF type R_386_GOTOFF",0);
       break;
 
     case     R_386_GOTPC:
-      FEerror("Unsupported ELF type R_386_GOTPC");
+      FEerror("Unsupported ELF type R_386_GOTPC",0);
       break;
 
 #ifdef R_386_NUM
     case     R_386_NUM:
-      FEerror("Unsupported ELF type R_386_NUM");
+      FEerror("Unsupported ELF type R_386_NUM",0);
       break;
 #endif
 
@@ -657,7 +657,7 @@
          fflush(stdout);
        }
     }
-  else{FEerror("symbol table not loaded",0,0);}
+  else{FEerror("symbol table not loaded",0);}
 }
 
 static void
--- ./o/unixfasl.c.orig Sat Feb 15 00:38:28 2003
+++ ./o/unixfasl.c      Sat Sep 13 23:52:25 2003
@@ -282,7 +282,7 @@
 static int
 faslink(object faslfile, object ldargstring)
 {
-#if defined(__linux__) && defined(__ELF__)
+#if (defined(__linux__) || defined(__FreeBSD__)) && defined(__ELF__)
   FEerror("faslink() not supported for ELF yet",0);
   return 0;
 #else
--- ./unixport/rsym_elf.c.orig  Thu Jul 25 22:49:47 2002
+++ ./unixport/rsym_elf.c       Sat Sep 13 23:52:25 2003
@@ -34,9 +34,6 @@
 int text_index,data_index,bss_index,sbss_index;
 #undef SYM_NAME
 #undef EXT_and_TEXT_BSS_DAT
-#define mjoin(a,b) a ## b
-#define Mjoin(a,b) mjoin(a,b)
-#define ELFW(a) Mjoin(ELF,Mjoin(__ELF_NATIVE_CLASS,Mjoin(_,a)))
 
 int nsyms;
 char *my_string_table;
@@ -136,7 +133,6 @@
        unsigned int i;
        FILE *fp;
        int symsize;
-       extern char *malloc();
        
         
        fp = fopen(filename, RDONLY);

reply via email to

[Prev in Thread] Current Thread [Next in Thread]