[comp.lang.perl] building perl 3.0

crouch@axion.bt.co.uk (the man whose head expanded) (10/17/90)

Hi,

I'm having problems building perl on an hp9000/800 running hp-ux 3.01. All's well until the linking phase when I get the following error:

/bin/ld: Target of conditional branch is out of range
   Reference from:  /lib/libc.a(syscall.o)(0x3c)
/bin/ld: Invalid fixups exist

I've tried defining CRIPPLED_CC but it makes no difference. Does anyone know how to fix this?

Regards,

Chris
-----------------------------------------------------------------------------
Chris Rouch                                             crouch@axion.bt.co.uk
RT3131, BTRL, Martlesham Heath, Ipswich, England.              +44 473 646093

Only when we dream are we free. The rest of the time we need wages.
-----------------------------------------------------------------------------
Chris Rouch                                             crouch@axion.bt.co.uk
RT3131, BTRL, Martlesham Heath, Ipswich, England.              +44 473 646093

Only when we dream are we free. The rest of the time we need wages.

chrise@hpnmdla.HP.COM (Chris Eich) (10/23/90)

Sorry to take so long to get back to you.  You need to pull two .o's out
of libc and link them in explicitly.  Attached is a patch for the PL37
Makefile.SH (remember to run "sh Makefile.SH" afterward to regenerate
the Makefile).

Chris

*** Makefile.SH.dist	Mon Oct 22 16:36:51 1990
--- Makefile.SH	Mon Oct 22 16:38:22 1990
***************
*** 114,120
  
  obj1 = array.o cmd.o cons.o consarg.o doarg.o doio.o dolist.o dump.o
  obj2 = eval.o form.o hash.o $(mallocobj) perly.o regcomp.o regexec.o
! obj3 = stab.o str.o toke.o util.o
  
  obj = $(obj1) $(obj2) $(obj3)
  

--- 114,120 -----
  
  obj1 = array.o cmd.o cons.o consarg.o doarg.o doio.o dolist.o dump.o
  obj2 = eval.o form.o hash.o $(mallocobj) perly.o regcomp.o regexec.o
! obj3 = stab.o str.o toke.o util.o syscall.o cerror.o
  
  obj = $(obj1) $(obj2) $(obj3)
  
***************
*** 120,126
  
  tobj1 = tarray.o tcmd.o tcons.o tconsarg.o tdoarg.o tdoio.o tdolist.o tdump.o
  tobj2 = teval.o tform.o thash.o $(mallocobj) tregcomp.o tregexec.o
! tobj3 = tstab.o tstr.o ttoke.o tutil.o
  
  tobj = $(tobj1) $(tobj2) $(tobj3)
  

--- 120,126 -----
  
  tobj1 = tarray.o tcmd.o tcons.o tconsarg.o tdoarg.o tdoio.o tdolist.o tdump.o
  tobj2 = teval.o tform.o thash.o $(mallocobj) tregcomp.o tregexec.o
! tobj3 = tstab.o tstr.o ttoke.o tutil.o syscall.o cerror.o
  
  tobj = $(tobj1) $(tobj2) $(tobj3)
  
***************
*** 137,142
  all: $(public) $(private) $(util) perl.man uperl.o $(scripts)
  	cd x2p; $(MAKE) all
  	touch all
  
  # This is the standard version that contains no "taint" checks and is
  # used for all scripts that aren't set-id or running under something set-id.

--- 137,145 -----
  all: $(public) $(private) $(util) perl.man uperl.o $(scripts)
  	cd x2p; $(MAKE) all
  	touch all
+ 	
+ syscall.o cerror.o: /lib/libc.a
+ 	ar xv /lib/libc.a $@
  
  # This is the standard version that contains no "taint" checks and is
  # used for all scripts that aren't set-id or running under something set-id.