Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 18 Mar 2011 16:16:16 +0200
From:      Kostik Belousov <kostikbel@gmail.com>
To:        Marco van de Voort <marcov@stack.nl>
Cc:        freebsd-ports@freebsd.org
Subject:   Re: Compiling ports in a post-9.0-RELEASE world
Message-ID:  <20110318141616.GA78089@deviant.kiev.zoral.com.ua>
In-Reply-To: <20110318104038.4DB6C1737B@turtle.stack.nl>
References:  <4D8244A4.2090206@FreeBSD.org> <20110318104038.4DB6C1737B@turtle.stack.nl>

next in thread | previous in thread | raw e-mail | index | archive | help

--ywhQ9CMaNzNm+7bZ
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

On Fri, Mar 18, 2011 at 11:40:38AM +0100, Marco van de Voort wrote:
> In our previous episode, Matthias Andree said:
> >=20
> > So far I've found clang surprisingly good in that it revealed a few=20
> > quirks in my own software (in C) that GCC or ICC had silently accepted,=
=20
> > and the static analyzer has a few rough edges, but I have found bugs in=
=20
> > my own software, not in clang 2.8 so far, although I suspect that a few=
=20
> > might linger there.
>=20
> How much changes for non-(GC)C ports? In other words, ports that directly
> use AS and LD to generate binaries, but might also link to C libraries
> outside of gcc's control.
>=20
> (I'm thinking about e.g. lang/fpc here)
>=20
> Issues like
>=20
> - Are there fundamental startup code (CSU) changes due to this in 9?
csu consists of two pieces. One, living in lib/csu, provides the
system startup for activated image, and it is not compiler-depended
in any way. The other part, implemented by crtbegin.o/crtend.o in gcc,
is compiler-depended and arranges the ctr/dtr calls at proper time.

> - libraries that might need to be implicitely linked when linking against=
 C
>   code (like libgcc,c)
libc is system library, it is compiler-agnostic and shall provide the
same ABI regardless of the compiler. libgcc is compiler-depended, but
clang claims to conform to gcc ABI there.

> - Do certain libc internal macros change (like __errno_location)
Errno is part of libc, see above.

> - Do lowlevel details of stuff like TLS change?
TLS is implemented according to ELF ABI (some sort of ABI, there).
It is mostly implemented in rtld, and compiler just need to follow
the ABI.

>=20
> Of course I'll load up some RC or DP in a VM if necessary to find my own
> answers. But if somebody knows some details, it would help guestimating t=
he
> effort.

It should be plug and play, modulo the bugs.

--ywhQ9CMaNzNm+7bZ
Content-Type: application/pgp-signature
Content-Disposition: inline

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.11 (FreeBSD)

iEYEARECAAYFAk2DaS8ACgkQC3+MBN1Mb4hwfgCglob2yvvH+TPNlPT1KPPR/4U0
RD0AoI5kpWoHQPkaBHKSkLDloJQrrRlE
=pHSd
-----END PGP SIGNATURE-----

--ywhQ9CMaNzNm+7bZ--



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