Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 11 Mar 2004 11:00:36 +0100
From:      Alexander Leidinger <Alexander@Leidinger.net>
To:        "Dr. Richard E. Hawkins" <hawk@slytherin.ds.psu.edu>
Cc:        freebsd-ports@freebsd.org
Subject:   Re: attempting to resucitate Lahey Fortran port
Message-ID:  <20040311110036.163675bd@Magellan.Leidinger.net>
In-Reply-To: <20040310234916.GA25508@slytherin.ds.psu.edu>
References:  <20040303195716.GL57588@slytherin.ds.psu.edu> <20040304182123.464f684e@Magellan.Leidinger.net> <20040304204910.GA52768@slytherin.ds.psu.edu> <20040305010931.7a0ed8a8@Magellan.Leidinger.net> <20040310234916.GA25508@slytherin.ds.psu.edu>

next in thread | previous in thread | raw e-mail | index | archive | help
On Wed, 10 Mar 2004 18:49:16 -0500
"Dr. Richard E. Hawkins" <hawk@slytherin.ds.psu.edu> wrote:

> > I would use
> >  RUN_DEPENDS= ${LINUXBASE}/usr/bin/ld:${PORTSDIR}/devel/linux_devtools
> 
> > This way you use the linux ld to link a program, so it will be an linux
> > binary, not a FreeBSD binary. I don't know if this is intended. If you
> > didn't have some special fixes like we have in the ifc and icc ports, I
> > assume depending on linux_base is the right way to solve this issue.
> 
> I'm not following here:  ld comes from linux_devtools, not linux_base.

If you want to produce linux binaries, depend upon linux_devtools. If
you want to produce FreeBSD binaries, depend upon linux_base and write a
wrapper for ld which "does the right thing".

> I've looked at the ifc port, but there's a lot there.  Is there just a 
> little bit of magic that I can borrow from that?  

I don't know. The ifc ports do what they do because they have to do it,
to be able to produce native FreeBSD binaries.

> Hmm, would that also turn it into executables that can be debugged on
> FreeBSD?

You should be able to debug them in both cases, you just have to use the
right debugger (a linux one or a FreeBSD one, depending on the type of
the executable).

> > The default linux emulation is based upon the v7 ports (since a long
> > time), so you should use the v7 linux_devtools port. If your port
> > depends upon another linux_base version, it also needs to depend on a
> > similar linux_devtools port.
> 
> Hmm, plane old linux_base and linux_devtools seem to be v8 now.

% grep PORTVERSION /usr/ports/emulators/linux_base/Makefile
PORTVERSION=            7.1

But my last update of the ports tree is 3 days ago.


> > linuxthreads is a FreeBSD library. It does threading similar to the way
> > linux does it. So if your port doesn't produce native FreeBSD
> > executables (because you don't do nasty tricks like the ifc and icc
> > ports do), you can't use it. I think you need to lookup a linux pthreads
> > lib somewhere. I can't give a better advise, as I don't know how lf95
> > fails in this regard.
> 
> It flat out tries to start multiple linux threads.  If libthreads just
> provides a resource like that, rather than maps kernel calls to FreeBSD
> calls, there's no point.

The mapping of linux syscalls is done in the kernel, not in the
userland.

Bye,
Alexander.

-- 
           I will be available to get hired in April 2004.

http://www.Leidinger.net                       Alexander @ Leidinger.net
  GPG fingerprint = C518 BC70 E67F 143F BE91  3365 79E2 9C60 B006 3FE7



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20040311110036.163675bd>