Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 3 Aug 2017 14:46:27 +0200
From:      Joerg Sonnenberger <joerg@bec.de>
To:        Bruce Evans <brde@optusnet.com.au>
Cc:        Ngie Cooper <ngie@freebsd.org>, svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org
Subject:   Re: svn commit: r321969 - in head/sys/boot: arm/at91/libat91 arm/ixp425/boot2 i386/boot2
Message-ID:  <20170803124627.GB2734@britannica.bec.de>
In-Reply-To: <20170803173421.C2203@besplex.bde.org>
References:  <201708030527.v735R5dg041043@repo.freebsd.org> <20170803173421.C2203@besplex.bde.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Thu, Aug 03, 2017 at 05:53:43PM +1000, Bruce Evans wrote:
> Freestanding versions (static and otherwise) cause problems with builtins.
> -ffreestanding turns off all builtins.  The static memcpy used to be
> ifdefed so as to use __builtin_memcpy instead of the static one if the
> compiler is gcc.  That apparently broke with gcc-4.2, since the builtin
> will call libc memcpy() in some cases, although memcpy() is unavailable
> in the freestanding case.

GCC always had a requirement that freestanding environment must provide
certain functions (memcpy, memmove, memset, memcmp). At least memcpy and
memset are regulary used for certain code constructs. While most calls
will be inlined, it is not required.

Joerg



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