[M3devel] Stuck on adding new cm3 target (AMD64_DRAGONFLY)

John Marino adacore at marino.st
Sun Jan 19 12:53:53 CET 2014

On 1/19/2014 12:35, Jay K wrote:
> C:\dev2\cm3.2>findstr /s /i /p /c:"unrecognized target machine" *m3
> m3-sys\cm3\src\Builder.m3:      Msg.FatalError (NIL, "unrecognized
> target machin
> e: TARGET = ", s.target);
>  Please don't bother with the last release.
>  Please use the current CVS version.

But the last release is what is in FreeBSD ports, the basis of both
FreeBSD and DragonFly.  And ports doesn't build from repos normally,
although there is a facility to pull directly from github, but I don't
like that method myself.

If there was an official downloadable snapshot or release candidate, I
could use that.  Since 2010 was the last release, is another one coming

>  And please use the C backend.
>  Did you edit m3-sys/m3middle/src/Target.i3 and possibly Target.m3?

Yes, that was one of the many patches in the attachment I send in the
previous mail.

>  Please use this as a guide for files to consider changing:
>  C:\dev2\cm3.2>findstr /m /s /i /p freebsd m3makefile
> m3-comm\udp\test\src\m3makefile
> m3-libs\libm3\src\os\POSIX\m3makefile
> m3-libs\m3core\src\float\m3makefile
> m3-libs\m3core\src\thread\m3makefile
> m3-libs\m3core\src\thread\PTHREAD\m3makefile
> m3-libs\m3core\src\unix\m3makefile
> m3-sys\m3cc\src\m3makefile
> m3-sys\m3gdb\src\m3makefile
> m3-tools\cvsup\suplib\src\FreeBSD\m3makefile
> m3-tools\cvsup\suplib\src\m3makefile
> m3-tools\cvsup\suptcp\src\POSIX\m3makefile

The only ones I haven't patched already are
m3-libs\m3core\src\thread\PTHREAD\m3makefile and the cvsup ones.  Those
wouldn't cause the error.  I also assume this is the top of the repo.

> C:\dev2\cm3.2>findstr /m /s /i /p freebsd *.c
>   m3-libs\libm3\src\uid\POSIX\getMID.c 
>   m3-libs\libm3\src\uid\POSIX\MachineIDPosixC.c
>   m3-libs\m3core\src\Csupport\Common\s_lroundl.c
>  m3-libs\m3core\src\float\C99\FloatModeC.c 
>    m3-libs\m3core\src\runtime\common\RTProcessC.c 
>   m3-libs\m3core\src\runtime\POSIX\RTSignalC.c  
>   m3-libs\m3core\src\thread\POSIX\ThreadPosixC.c
>   m3-libs\m3core\src\thread\PTHREAD\ThreadFreeBSD.c
>   m3-libs\m3core\src\thread\PTHREAD\ThreadOpenBSD.c
>   m3-libs\m3core\src\thread\PTHREAD\ThreadPThreadC.c
>   m3-libs\m3core\src\unix\Common\Uin.c
>   m3-libs\patternmatching\src\libglob\fnmatch.c
> esp. m3core and libm3.

I haven't seen freebsd in these, so must be a difference between release
and repo.

>  If we are sure of the name "AMD64_DRAGONFLY" I can go ahead and do it
> for you.
>  But I realize there is much value in me NOT doing it.
>  I thought maybe AMD64_DBSD or DFLYBSD, but DRAGFLY is ok.

Because AMD64_DRAGONFLY is too long?
I'd prefer to keep it "AMD64_DRAGONFLY" because it matches the other
targets and because of all the work I've already done.

I'm really, really close to getting cm3 bootstrapped on DragonFly with
5.8.6.  I believe if this "M3_BOOTSTRAP = true" version would compile, I
could build cm3 and libraries on DragonFly with the cm3cg that's already
built on it.  Once I have a fully native compiler, then I can update to
the latest repo, especially if some kind of snapshot is released.


More information about the M3devel mailing list