Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 17 Mar 2012 10:26:06 -0400
From:      Super Bisquit <superbisquit@gmail.com>
To:        Alexander Kabaev <kabaev@gmail.com>
Cc:        freebsd-emulation@freebsd.org, FreeBSD PowerPC ML <freebsd-ppc@freebsd.org>
Subject:   Re: ELF header adjusting
Message-ID:  <CA%2BWntOvgGROYYEZYovCGPGc6k_v6G2gWreE%2B0hdbSunE_wHuNQ@mail.gmail.com>
In-Reply-To: <20120317091952.2e8c4fcf@kan.dyndns.org>
References:  <CA%2BWntOtp02vCjdYQSU0jkVH4TPWp_P9H_2YQdYrHR7UzFbd2VQ@mail.gmail.com> <20120316155901.77ca48ee@kan.dyndns.org> <CA%2BWntOvdxtV9wB2RpK%2BF13eADEY69SUSOU8OznPyPP4FXxwYKw@mail.gmail.com> <20120317091952.2e8c4fcf@kan.dyndns.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Sat, Mar 17, 2012 at 9:19 AM, Alexander Kabaev <kabaev@gmail.com> wrote:

> On Fri, 16 Mar 2012 23:51:30 -0400
> Super Bisquit <superbisquit@gmail.com> wrote:
>
> > On Fri, Mar 16, 2012 at 3:59 PM, Alexander Kabaev <kabaev@gmail.com>
> > wrote:
> >
> > > On Fri, 16 Mar 2012 15:45:47 -0400
> > > Super Bisquit <superbisquit@gmail.com> wrote:
> > >
> > > > "Okay, what in the hell is he trying to do now?"
> > > > The answer to your question is:
> > > > I've looked at the header file for the bin/java and bin/java_vm in
> > > > the ibm powerpc java binaries. There is a reference
> > > > to /lib/ld.so.1 in a Linux installation which is very similar
> > > > to /usr/libexec/ld-elf.so.1 in a FreeBSD installation.
> > > >
> > > > chipchop# pwd
> > > > /tmp/install.dir.53010/Linux/resource/jre/bin
> > > > chipchop# ls
> > > > ControlPanel    ikeyman        java_vm        jcontrol    keytool
> > > > ktab        rmid        unpack200
> > > > classic        j9vm        javaw        jdmpview    kinit
> > > > pack200 rmiregistry
> > > > ikeycmd        java        javaws        jextract    klist
> > > > policytool    tnameserv
> > > > chipchop# elfedit --input-osabi=FreeBSD --output-osabi=FreeBSD
> > > > java elfedit: Error: java: Unmatched EI_OSABI: 0 is not 9
> > > > chipchop# elfedit --input-osabi=FreeBSD --output-osabi=FreeBSD
> > > > java_vm elfedit: Error: java_vm: Unmatched EI_OSABI: 0 is not 9
> > > > chipchop# elfedit  --output-osabi=FreeBSD java_vm
> > > > chipchop# elfedit --output-osabi=FreeBSD java
> > > > chipchop#
> > > >
> > > > If in doubt about my finding for similarities
> > > > between /lib/ld.so.1 and /usr/lbexec/ld-elf.so.1 then open the
> > > > former with nano orvi and the latter with vi to see the headers.
> > >
> > > Would it be a much of a shock to discover that two export largely
> > > intersecting list of functions, both being ELF loaders?
> >
> >
> > Would rewriting the header to use the FreeBSD equivalent to the Linux
> > ones possibly work?
> > Ignore - for the moment- the reference to ld-elf.so.1.
> > /usr/lib/ld.so.1 FreeBSD /lib/ld.so.1 Linux. (I did a re-search)Both
> > serve the same purpose. The binaries are obviously checking for the
> > Linux path.
> > >
> > >  Sadly, you
> > > provide no answer to the question you yourself ask on the very first
> > > line of own messages, so the point of your message is somewhat
> > > unclear to me still.
> > >
> > > --
> > > Alexander Kabaev
> > >
> >
> > Has anyone reported anything on changing the called for libraries and
> > such in the file to use the FreeBSD path instead?
>
> No, this won't work. By rewriting headers you change the library to
> _look_ like FreeBSD one, but you do not change what library _does_.
> Linux and FreeBSD differ in how syscalls are processed and what
> parameters they take, they setup floating point processing unitt in a
> subtly different ways by default, and so on and so on. Linux ELF loader
> expects an information from the kernel that FreeBSD kernel won't
> provide and vice versa. If library were not communicating with outside
> world at all, then it likely will be possible possible to rewrite its
> headers and use it in FreeBSD, but that theoretical case is hardly
> interesting in real world.
>
> --
> Alexander Kabaev
>

An honest thanks, man, for the feedback.
Okay, I hope no one on either list gets pissed at my next questions and
statements.
I basically learn by pattern recognition- comparison, reverse engineering
(I finally have to admit that's what I'm doing.), and such. I would ask to
be pointed to a set of tutorials to learn disassembling elf files.
I have elfkickers installed; is that set of programs enough to get started.
I've seen references to elfutils; will having that program help?
I realize that by learning how to edit makefiles and other config
statements that I'm learning some about C and shell slowly; what would be
some other FreeBSD projects that I can work with to learn more?

This is what I am trying/doing  right now related to FreeBSD.

Porting to Xbox360 and wii: I'm missing the wireless controller to the wii
and have to borrow one. I pulled the Xbox360 out of  atrash heap and I'm
ring to repair it.
Making the ibm-java-binaries work on FreeBSD powerpc: That is what the
conversation has been about. The project is being started at school and
will be continued at the next one- community college now to a university
later.
Having more people know about FreeBSD: This is why I am introducing it at
school. It is also why I try to make my tutorials thorough.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CA%2BWntOvgGROYYEZYovCGPGc6k_v6G2gWreE%2B0hdbSunE_wHuNQ>