<html>
<head>
<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 12pt;
font-family:Calibri
}
--></style></head>
<body class='hmmessage'><div dir='ltr'> The FreeBSD4 users were surprisingly vocal surprisingly recently.<br> So I put some work into it.<br> I agree it is an old system.<BR> <BR> <BR> Linux.common and FreeBSD.common look very similar but I agree different<br> and if it is working for you, good, I can ignore it?<BR><br> <BR> I guess the main thing was "-Wl,-z,origin"? Needed to make $ORIGIN work?<BR> Was this right for FreeBSD 5 or 6 or 7 or 8?<BR> <BR><br> Dragonfly should be fairly easy...though it is a bit more work than is ideal. <BR><br> <BR>The main thing is we still have lists of targets. <br> Look in m3-sys/m3middle/src/Target.* <BR> Soon hopefully the jmpbuf there will go away. That will help. <BR> Areas to port are easy to find with grep/findstr: <BR> <BR> <BR>C:\dev2\cm3\m3-libs\libm3>findstr /m /s /i OPENBSD *<br> src\os\POSIX\m3makefile <br> src\os\POSIX\m3makefile-old <br> src\uid\POSIX\getMID.c <br> src\uid\POSIX\MachineIDPosixC.c <br> tests\random\src\m3makefile <BR> <BR><br>C:\dev2\cm3\m3-libs\m3core>findstr /m /s /i OPENBSD *<br> src\atomic\m3makefile <br> src\C\Common\Cstring.i3 <br> src\Csupport\Common\lround-readme.txt <br> src\Csupport\Common\s_llroundl.c <br> src\Csupport\Common\s_lround.c <br> src\Csupport\Common\s_lroundl.c <br> src\Csupport\m3makefile-old <br> src\float\m3makefile <br> src\float\m3makefile-old <br> src\m3core.h <br> src\runtime\POSIX\RTSignalC.c <br> src\thread\POSIX\ThreadPosixC.c <br> src\thread\PTHREAD\m3makefile <br> src\thread\PTHREAD\ThreadOpenBSD.c <br> src\thread\PTHREAD\ThreadPThreadC.c <br> src\time\POSIX\m3makefile.old <br> src\unix\Common\Ustat.i3 <br> src\unix\m3makefile <br> src\unix\m3makefile-old <BR> <BR><br> C:\dev2\cm3\m3-sys\m3middle>findstr /m /s /i OPENBSD * <br> src\Target.i3 <br> src\Target.i3-old <br> src\Target.m3 <br> src\Target.m3-old <BR> <BR><br> This looks scarier than it is. <br> Many cases are just to add to a list of platforms you are close enough to. <br> Some cases I hope to eliminate -- cooperative suspend will cut out a swath for example. <BR> <BR><br>Thanks,<br> - Jay<br><br><br><br> <BR><div>> Date: Fri, 5 Jun 2015 00:28:36 +0200<br>> From: adacore@marino.st<br>> To: jay.krell@cornell.edu; m3devel@elegosoft.com<br>> Subject: Re: [M3devel] rpath woes<br>> <br>> On 6/4/2015 20:10, John Marino wrote:<br>> > On 6/4/2015 20:05, Jay K wrote:<br>> >> My understanding:<br>> >> The modula-3 libraries, e.g. m3core,<br>> >> are found from the rpath I put in, like<br>> > <br>> >> $ORIGIN:$ORIGIN/../lib<br>> >> Other libraries like libc.so are found by full path, that is already<br>> >> correct at build time?<br>> >> Do users want to possibly have a private /usr/local/lib/libc.so?<br>> >> I hadn't considered that.<br>> >> Or build is "staged" and the full paths aren't correct at build time?<br>> >> I think I hadn't considered that either.<br>> >> You are on the right track, looking in this area.<br>> >> Did you notice the "portable rpath" thingy that make-dist.py changes?<br>> > <br>> > I believe make-dist.py is hard-coding portable rpath which means it's<br>> > hardcoding $ORIGIN I think, but it's not working.<br>> > <br>> > The origin flag is set, but $ORIGIN itself is not.  I think this is a bug.<br>> > <br>> > We prefer to use hardcoded rpaths in ports, but I will settle for<br>> > $ORIGIN if it works.  $ORIGIN works on FreeBSD and DragonFly, but not<br>> > NetBSD (not sure about OpenBSD, I'd guess it does though).<br>> > <br>> > The "-Wl,rpath," looks wrong to me, but sticking $ORIGIN here didn't<br>> > work either.<br>> <br>> Okay, I have this solved.<br>> The problem is FREEBSD.common is obsolete (origin linker flags were<br>> wrong)  I basically copied LINUX.common contents to it and now<br>> everything works as expected.<br>> <br>> I've updated the port here:<br>> http://www.freshports.org/lang/modula3/<br>> <br>> The patch for FREEBSD.common is here:<br>> https://svnweb.freebsd.org/ports/head/lang/modula3/files/<br>> <br>> I think all references to FREEBSD4 could be removed (as I did in the<br>> patch).  FreeBSD4 was EOL in Jan 2007.<br>> <br>> So I'm basically done until its time to change the port to use the C<br>> backend (and/or bootstrap it to DragonFly)<br>> <br>> John<br>> <br>> <br>> <br></div>                                          </div></body>
</html>