RE: java too? (was Re: Perl still broken in 4.0-CURRENT)

1999-09-07 Thread Nate Williams

  I think that java is still broken by this.
  
..
  java
  Segmentation fault (core dumped)
 
 
 I've just committed the fix in "src/libexec/rtld-elf/rtld.h" revision
 1.12.  The Java runtime was peeking into some of the dynamic linker's
 private data structures.  My recent changes added some new members
 which changed the layout of the structures.  I've moved the new
 members to the end to work around the problem.
 
 This is really a JDK bug, but I understand they did it that way to
 work around limitations in the dynamic linker.  I'll try to help them
 find a less fragile way.

This is necessary because the JDK has no way of knowing if dladdr() and
other misc. functions exist at runtime, because it must run on *all*
versions of FreeBSD, and older versions of 3.* didn't have these
functions.

We can't maintain backward compatability 'cleanly' w/out knowing the
internals unfortunately.  That is, unless John can come up with a way
that we're not aware of. :) :) :) :)



Nate


To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message



RE: java too? (was Re: Perl still broken in 4.0-CURRENT)

1999-09-07 Thread John Polstra

OK, sorry for the delay.  Here's what I'd recommend for Java:

1. To determine whether the dynamic linker implements dladdr():

#define PATH_RTLD "/usr/libexec/ld-elf.so.1"

if ((handle = dlopen(PATH_RTLD, RTLD_LAZY)) == NULL)
err(1, "Can't dlopen %s: %s", PATH_RTLD, dlerror());

if (dlsym(handle, "dladdr") != NULL)
printf("%s implements dladdr()\n", PATH_RTLD);
else
printf("%s doesn't implement dladdr()\n", PATH_RTLD);

If the dynamic linker does implement dladdr() you can call it from
your own dladdr() wrapper via the pointer returned from the dlsym
call.  Otherwise ...

2. If the dynamic linker doesn't implement dladdr():

#include link.h

struct r_debug r_debug;

/* "handle" is the dlopen handle for the dynamic linker (see above) */
if ((r_debug = dlsym(handle, "r_debug")) == NULL)
err(1, "Can't dlsym r_debug", dlerror());

See link.h for the details of "r_debug".  It contains a member
"r_map" which is the head of a linked list of "link_map" structures.
They contain (I think) all the information you need to implement
dladdr's functionality.  These data structures are safer to use
because they're published interfaces that are used by GDB.

Let me know if it seems like this won't do the job.

John
--
  John Polstra   [EMAIL PROTECTED]
  John D. Polstra  Co., Inc.Seattle, Washington USA
  "No matter how cynical I get, I just can't keep up."-- Nora Ephron


To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message



java too? (was Re: Perl still broken in 4.0-CURRENT)

1999-09-05 Thread Jake Burkholder

 I found the problem and the fix for the perl breakage that was
 caused by my recent changes to the dynamic linker.  I'm doing a make
 world now, just to make sure I haven't broken something new.  I'll
 commit the fix later this evening, unless the make world reveals new
 problems.  (I don't think it will.)
 

I think that java is still broken by this.

It seg faults immediately with the current rtld, even when run with
no arguments:

 java
Segmentation fault (core dumped)


but works fine when I revert to august 25th rtld.
-- 
we are but packets in the internet of life




To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message



RE: java too? (was Re: Perl still broken in 4.0-CURRENT)

1999-09-05 Thread John Polstra

Jake Burkholder wrote:

 I think that java is still broken by this.
 
 It seg faults immediately with the current rtld, even when run with
 no arguments:
 
 java
 Segmentation fault (core dumped)

 
 but works fine when I revert to august 25th rtld.

Thanks for letting me know.  Please tell me exactly how to reproduce
the problem -- i.e., which port(s) to install and which commands to
enter.  I'll fix it ASAP.

Thanks for your patience, folks.

John
---
  John Polstra   [EMAIL PROTECTED]
  John D. Polstra  Co., Inc.Seattle, Washington USA
  "No matter how cynical I get, I just can't keep up."-- Nora Ephron



To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message



Re: Perl still broken in 4.0-CURRENT

1999-09-03 Thread John Polstra

In article [EMAIL PROTECTED],
Dmitrij Tejblum  [EMAIL PROTECTED] wrote:
 Pascal Hofstee wrote:
  Perl seems to be broken for about 3 consecutive days now 
  Anybody have any idea what might be causing this ?
 
 I suspect it is the recent changes in rtld.

Hmm, could be.  Can one of you please give it a try with the older
ld-elf.so.1 and see if it works again?  I recommend trying the
dynamic linker from August 25.

If it works with the older dynamic linker, please send me (preferably
simple :-) instructions for reproducing the problem.

Thanks,
John
-- 
  John Polstra   [EMAIL PROTECTED]
  John D. Polstra  Co., Inc.Seattle, Washington USA
  "No matter how cynical I get, I just can't keep up."-- Nora Ephron


To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message



Re: Perl still broken in 4.0-CURRENT

1999-09-03 Thread Pascal Hofstee

On Fri, 3 Sep 1999, John Polstra wrote:

 Hmm, could be.  Can one of you please give it a try with the older
 ld-elf.so.1 and see if it works again?  I recommend trying the
 dynamic linker from August 25.
 
 If it works with the older dynamic linker, please send me (preferably
 simple :-) instructions for reproducing the problem.

Well ... I personally use CVSup to do my source-tree updating. If you
could provide me with instructions on how to revert the current rtld-elf
code to an older revision .. i sure would like to try out.

As for the easiest way to reproduce  just try to run the mirror-script
it's bound to just Die with a SIGSEGV in DynaLoader.pm


  Pascal Hofstee - [EMAIL PROTECTED]

-BEGIN GEEK CODE BLOCK-
Version: 3.1
GCS d- s+: a-- C++ UB P+ L- E--- W- N+ o? K- w--- O? M V? PS+ PE Y-- PGP--
t+ 5 X-- R tv+ b+ DI D- G e* h+ r- y+
--END GEEK CODE BLOCK--



To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message



Re: Perl still broken in 4.0-CURRENT

1999-09-03 Thread John Polstra


Pascal Hofstee wrote:
 On Fri, 3 Sep 1999, John Polstra wrote:
 
 Hmm, could be.  Can one of you please give it a try with the older
 ld-elf.so.1 and see if it works again?  I recommend trying the
 dynamic linker from August 25.
 
 If it works with the older dynamic linker, please send me (preferably
 simple :-) instructions for reproducing the problem.
 
 Well ... I personally use CVSup to do my source-tree updating. If you
 could provide me with instructions on how to revert the current rtld-elf
 code to an older revision .. i sure would like to try out.

Thanks!  Here are the instructions.  Make a copy of your supfile.
Let's call it "supfile.rtld".  Now edit that file and add this line at
the beginning:

*default date=99.08.25.00.00.00

Run cvsup as usual, except for two changes:

1. Specify "supfile.rtld" instead of your usual supfile.

2. Add "-i src/libexec/rtld-elf" to the command line.

That should back out the recent changes to ld-elf.so.1 quickly,
without affecting anything else.

Next, build and install the dynamic linker:

1. Make a backup copy of "/usr/libexec/rtld-elf.so.1".

2. Run these commands:

cd /usr/src/libexec/rtld-elf
make cleandir; make cleandir
make obj
make depend
make all
make install

And try it out.

Your next regular cvsup run will undo the changes.

 As for the easiest way to reproduce  just try to run the
 mirror-script it's bound to just Die with a SIGSEGV in DynaLoader.pm

I was hoping for something simpler that wouldn't require me to
figure out how to configure mirror-script. :-(

John
---
  John Polstra   [EMAIL PROTECTED]
  John D. Polstra  Co., Inc.Seattle, Washington USA
  "No matter how cynical I get, I just can't keep up."-- Nora Ephron



To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message



Re: Perl still broken in 4.0-CURRENT

1999-09-03 Thread John Polstra

Oops, I said:

 1. Make a backup copy of "/usr/libexec/rtld-elf.so.1".

but I meant "/usr/libexec/ld-elf.so.1".

John
-- 
  John Polstra   [EMAIL PROTECTED]
  John D. Polstra  Co., Inc.Seattle, Washington USA
  "No matter how cynical I get, I just can't keep up."-- Nora Ephron


To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message



Re: Perl still broken in 4.0-CURRENT

1999-09-03 Thread Brian Handy


I was hoping for something simpler that wouldn't require me to
figure out how to configure mirror-script. :-(

I haven't paid much attention, but I'm running a recent version of
-current.  (Sorry I can't specify the date, everything's out of sync.)
However, that aside, mirror-script is easy:  Just install 'mirror' from
the ports tree and then type 'mirror' at the prompt.  I don't need to
specify a mirror package to have it fall over with:

lambic:~/work/vault  mirror
DynaLoader:/usr/libdata/perl/5.00503/DynaLoader.pm:188 Caught a SIGSEGV
shutting down at /usr/local/bin/mirror line 3873.


Happy trails,


Brian



To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message



Re: Perl still broken in 4.0-CURRENT

1999-09-03 Thread John Polstra

Brian Handy wrote:
 
I was hoping for something simpler that wouldn't require me to
figure out how to configure mirror-script. :-(
 
 I haven't paid much attention, but I'm running a recent version of
 -current.  (Sorry I can't specify the date, everything's out of sync.)
 However, that aside, mirror-script is easy:  Just install 'mirror' from
 the ports tree and then type 'mirror' at the prompt.  I don't need to
 specify a mirror package to have it fall over with:
 
 lambic:~/work/vault  mirror
 DynaLoader:/usr/libdata/perl/5.00503/DynaLoader.pm:188 Caught a SIGSEGV
 shutting down at /usr/local/bin/mirror line 3873.

Thanks!  I'll give it a try.

John
---
  John Polstra   [EMAIL PROTECTED]
  John D. Polstra  Co., Inc.Seattle, Washington USA
  "No matter how cynical I get, I just can't keep up."-- Nora Ephron



To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message



Re: Perl still broken in 4.0-CURRENT

1999-09-03 Thread Anton Berezin

On Fri, Sep 03, 1999 at 01:04:53PM -0600, Brian Handy wrote:

 I was hoping for something simpler that wouldn't require me to figure
 out how to configure mirror-script. :-(

The simplest thing I've come up with (as I wrote some days before) is

$ perl -MIO -e ''

I.e. *any* use of IO::File and friends fails miserably during XS
bootsrap.  If it is necessary, I will reinstallworld tomorrow with
Aug-25 loader.

Cheers,
-- 
Anton Berezin [EMAIL PROTECTED]
The Protein Laboratory, University of Copenhagen


To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message



Re: Perl still broken in 4.0-CURRENT

1999-09-03 Thread John Polstra

Anton Berezin wrote:
 On Fri, Sep 03, 1999 at 01:04:53PM -0600, Brian Handy wrote:
 
 I was hoping for something simpler that wouldn't require me to figure
 out how to configure mirror-script. :-(
 
 The simplest thing I've come up with (as I wrote some days before) is
 
 $ perl -MIO -e ''
 
 I.e. *any* use of IO::File and friends fails miserably during XS
 bootsrap.  If it is necessary, I will reinstallworld tomorrow with
 Aug-25 loader.

Thanks, guys.  I have confirmed that the problem is connected with my
recent dynamic linker changes.  Now I just have to figure out why.
I'll fix it as soon as I can.

John
---
  John Polstra   [EMAIL PROTECTED]
  John D. Polstra  Co., Inc.Seattle, Washington USA
  "No matter how cynical I get, I just can't keep up."-- Nora Ephron



To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message



Perl still broken in 4.0-CURRENT

1999-09-01 Thread Pascal Hofstee

Hi,

Perl seems to be broken for about 3 consecutive days now 
Anybody have any idea what might be causing this ?


bash-2.03$ mirror /usr/local/lib/mirror/packages/daemonnews
DynaLoader:/usr/libdata/perl/5.00503/DynaLoader.pm:188 Caught a SIGSEGV
shutting down at /usr/local/bin/mirror line 3873.

uname -a:
FreeBSD shadowmere.student.utwente.nl 4.0-CURRENT FreeBSD 4.0-CURRENT #18:
Wed Sep  1 10:22:37 CEST 1999
[EMAIL PROTECTED]:/usr/src/sys/compile/VANADIUM  i386



  Pascal Hofstee - [EMAIL PROTECTED]

-BEGIN GEEK CODE BLOCK-
Version: 3.1
GCS d- s+: a-- C++ UB P+ L- E--- W- N+ o? K- w--- O? M V? PS+ PE Y-- PGP--
t+ 5 X-- R tv+ b+ DI D- G e* h+ r- y+
--END GEEK CODE BLOCK--



To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message



Re: Perl still broken in 4.0-CURRENT

1999-09-01 Thread Dmitrij Tejblum

Pascal Hofstee wrote:
 Hi,
 
 Perl seems to be broken for about 3 consecutive days now 
 Anybody have any idea what might be causing this ?

I suspect it is the recent changes in rtld.

Dima




To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message