Path: utzoo!utgpu!jarvis.csri.toronto.edu!rutgers!network!ucsd!usc!cs.utexas.edu!uunet!mcvax!sunic!liuida!isy!news
From: pell@isy.liu.se (P{r Emanuelsson)
Newsgroups: gnu.utils.bug
Subject: Re: robotussin problem? (and ld)
Message-ID: <1989Aug14.120914.15476@isy.liu.se>
Date: 14 Aug 89 12:09:14 GMT
References: <8908120056.AA03499@kovic.IRO.UMontreal.CA>
Sender: news@isy.liu.se (Lord of the News)
Organization: Dept of EE, University of Linkoping
Lines: 61

There is another robotussin problem which manifests itself on Sun386i systems.
An ABSolute symbol will not get the correct definition and ld will complain.

Unfortunately, ld still generates a.out's that core dumps immediately. If
someone has a solution for this, please mail me or post.

Included is also a patch for libconvert. Remember that ar truncates file
names to 14 characters. Thus, it may extract files that look like
"long_filename.". libconvert then fed robotussin all *.o files, which meant
that some files didn't get converted.

diff -rc2 binutils/a.out.gnu.h /a/src/gnu/binutils/a.out.gnu.h
*** binutils/a.out.gnu.h	Thu Mar  2 21:49:14 1989
--- /a/src/gnu/binutils/a.out.gnu.h	Sat Aug  5 22:01:26 1989
***************
*** 114,117 ****
--- 114,118 ----
  #define N_UNDF 0
  #define N_ABS 2
+ #define N_ABSOLUTE 2	/* Used in robotussin, N_ABS conflicts with COFF */
  #define N_TEXT 4
  #define N_DATA 6
diff -rc2 binutils/libconvert /a/src/gnu/binutils/libconvert
*** binutils/libconvert	Mon Jan  9 16:26:43 1989
--- /a/src/gnu/binutils/libconvert	Fri Aug  4 21:54:38 1989
***************
*** 35,39 ****
  cd libconvert-tmp 
  /bin/ar x $rel_fromlib
! for i in *.o
  do
  	echo $i
--- 35,39 ----
  cd libconvert-tmp 
  /bin/ar x $rel_fromlib
! for i in *
  do
  	echo $i
diff -rc2 binutils/robotussin.c /a/src/gnu/binutils/robotussin.c
*** binutils/robotussin.c	Fri Mar  3 16:43:41 1989
--- /a/src/gnu/binutils/robotussin.c	Sat Aug  5 22:01:50 1989
***************
*** 51,56 ****
  
  #include "a.out.encap.h"
! #define N_ABSOLUTE N_ABS		/* N_ABS will be redefined in syms.h */
! #undef N_ABS
  
  #include 
--- 51,55 ----
  
  #include "a.out.encap.h"
! #undef N_ABS			/* N_ABS will be redefined in syms.h */
  
  #include 
--
"Don't think; let the machine do it for you!"
                                   -- E. C. Berkeley
Dept. of Electrical Engineering	                         pell@isy.liu.se
University of Linkoping, Sweden	                    ...!uunet!isy.liu.se!pell