HP3000-L Archives

April 2001, Week 3

HP3000-L@RAVEN.UTC.EDU

Options: Use Monospaced Font
Show Text Part by Default
Show All Mail Headers

Message: [<< First] [< Prev] [Next >] [Last >>]
Topic: [<< First] [< Prev] [Next >] [Last >>]
Author: [<< First] [< Prev] [Next >] [Last >>]

Print Reply
Subject:
From:
Mark Bixby <[log in to unmask]>
Reply To:
Mark Bixby <[log in to unmask]>
Date:
Tue, 17 Apr 2001 09:06:37 -0700
Content-Type:
text/plain
Parts/Attachments:
text/plain (108 lines)
Tony White wrote:
>
> Mark,
>
> You were exactly right. I commented out the elif for the NMOBJ check in
> ar.ccg. FYI (if it's interesting) I installed the gnu tools from the 1999
> freeware tape. I just started the install in the GNU account. I got much
> futher this time. I was missing the syslog.h include file which was needed
> for the sources in crypto/bio directory, but I found one in your syslog/iX
> package.

IIRC, OpenSSL should have been smart enough to find /SYSLOG/PUB/syslog.h, which
is included in FOS starting with MPE 6.0.

> I am now having this error:
>
> You may get an error following this line. Please ignore.
> true ../../libcrypto.a
> make[2]: Leaving directory `/FREEWARE/OPENSSL/openssl-0.9.6a/crypto/err'
> making all in crypto/objects...
> make[2]: Entering directory
> `/FREEWARE/OPENSSL/openssl-0.9.6a/crypto/objects'
> gcc -I.. -I../../include -D_ENDIAN -DBN_DIV2W -O3 -DMPE -D_POSIX_SOURCE
> -D_SOCKE
> T_SOURCE -I/SYSLOG/PUB   -c o_names.c -o o_names.o
> gcc -I.. -I../../include -D_ENDIAN -DBN_DIV2W -O3 -DMPE -D_POSIX_SOURCE
> -D_SOCKE
> T_SOURCE -I/SYSLOG/PUB   -c obj_dat.c -o obj_dat.o
> gcc -I.. -I../../include -D_ENDIAN -DBN_DIV2W -O3 -DMPE -D_POSIX_SOURCE
> -D_SOCKE
> T_SOURCE -I/SYSLOG/PUB   -c obj_lib.c -o obj_lib.o
> gcc -I.. -I../../include -D_ENDIAN -DBN_DIV2W -O3 -DMPE -D_POSIX_SOURCE
> -D_SOCKE
> T_SOURCE -I/SYSLOG/PUB   -c obj_err.c -o obj_err.o
> ar r ../../libcrypto.a o_names.o obj_dat.o obj_lib.o obj_err.o
> **** Illegal data address (TRAPS 65).
>
> ABORT: C89.HPBIN.SYS
> NM PROG  557.00017964 _free+$15c
> make[2]: *** [lib] Segmentation fault
> make[2]: Leaving directory `/FREEWARE/OPENSSL/openssl-0.9.6a/crypto/objects'
> make[1]: *** [subdirs] Error 1
> make[1]: Leaving directory `/FREEWARE/OPENSSL/openssl-0.9.6a/crypto'
> make: *** [sub_all] Error 1
> shell/iX>
>
> What do I need to do about this one?

This is an old ar bug that I first encountered on MPE 6.0 when porting BIND and
re-encountered when I ported OpenSSL.  However, I did not see this abort when I
test-built OpenSSL 0.9.6a several times on 6.5pp2.

The workaround I used on 6.0 was to create an ar wrapper script that converts
the relative upwards filenames into absolute filenames (I had only seen these
aborts when referencing files like ../../foo/bar/.o).  My script looks like
this (caution: the while...continue is a single line):

#!/bin/sh

# Hack wrapper for /bin/ar to deal with relative archive filename problems.
# Convert upward references (../../foo/bar) to absolute path names.

while getopts cdrtuvx opt; do
  OPTS="$OPTS -$opt"
done
shift $OPTIND-1

ARCHIVE=$1
shift
MEMBERS=$@

case $ARCHIVE in
  \.\./.*) export PWD
        ARCHABS=`echo "$ARCHIVE" | awk '\
/^\/.*/ { print $0; next}
        { ABSOLUTE=sprintf("%s/%s",ENVIRON["PWD"],$0);
          while (gsub(/[-_A-Za-z0-9~\\$%^*+|{}:]+\/\.\.\//,"",ABSOLUTE) > 0)
continue;
          print ABSOLUTE }'`
        echo PWD = $PWD
        echo ARCHIVE = $ARCHIVE
        echo ARCHABS = $ARCHABS
        /bin/ar $OPTS $ARCHABS $MEMBERS
        RET=$?
        exit $RET
        ;;
  *)    /bin/ar $OPTS $ARCHIVE $MEMBERS
        ;;
esac

Install this on your e3000 with any name you like, then edit the OpenSSL
top-level Makefile to set the AR variable to refer to this wrapper script.
Re-run the make.

If this doesn't solve the problem, there is a second workaround available.  The
Porting Wrappers collection at
http://jazz.external.hp.com/src/px_wrappers/index.html contains
/POSIXC60/bin/ar2, which is another ar script that instead of being a wrapper
on top of the real ar is actually a new implementation that calls LINKEDIT
directly.  Edit the top-level Makefile to set the AR variable to refer to ar2
and re-run the make.
--
[log in to unmask]
Remainder of .sig suppressed to conserve scarce California electrons...

* To join/leave the list, search archives, change list settings, *
* etc., please visit http://raven.utc.edu/archives/hp3000-l.html *

ATOM RSS1 RSS2