Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 10 Jul 2019 20:00:31 +0000 (UTC)
From:      adr <adr@SDF.ORG>
To:        Ian Lepore <ian@freebsd.org>
Cc:        freebsd-arm@freebsd.org
Subject:   Re: FreeBSD arm EABI5 documentation?
Message-ID:  <alpine.NEB.2.21.1907101904570.15468@sdf.lonestar.org>
In-Reply-To: <da6a8f7e596da9bf9015f76798a5575908ad1be4.camel@freebsd.org>
References:  <alpine.NEB.2.21.1907101508370.22895@sdf.lonestar.org> <f2967859f68f1d40f260661791126956f48f4d12.camel@freebsd.org> <alpine.NEB.2.21.1907101735020.3201@sdf.lonestar.org> <da6a8f7e596da9bf9015f76798a5575908ad1be4.camel@freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
> It is both a toolchain and an OS matter.  The OS comes into play with
> things like syscalls and signal handling, where arg passing and stack
> alignment requirements have to be compatible between kernel and
> userland.  Also, the toolchain and the OS are more tightly coupled in
> freebsd than you may be used to.  Freebsd isn't a kernel with other
> stuff from other sources glommed on, it's the full combination of
> kernel and userland and toolchain and build system all integrated
> together into a single source base.

That is what I like of BSD. As I said before, I'm new to FreeBSD, but
not to BSD. I only use Linux when I have no other option, mostly because
of lack of hardware support.

> The good news is that freebsd is in sync with pretty much the entire
> rest of the world in this regard.  EABI (aka gnueabihf) is the standard
> used by all major OSes and toolchains these days for armv7.  And clang
> is very gcc-compatible; if you have code that compiles with modern gcc,
> it should compile with no changes using clang; even command-line
> options and flags are compatible.

In NetBSD (and Linux by the way) the C stack aligment of 32bit arm code 
doesn't have to be 8 bytes. The last version I tested of gcc was 8.3.
I'm talking about assembler, of course, using gcc to link the runtime
c code without going crazy. I have not used OpenBSD for years, so I don't
know how things are there today.

Anyway it seems that clang is just following the Arm standards. I think
this is more a gcc vs clang issue. Things are going to be much harder when
porting my code to arm64.

Thanks a lot for the info,
adr.



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