#includes and #defined

Warner Losh imp at bsdimp.com
Fri Aug 10 13:53:22 UTC 2018


On Thu, Aug 9, 2018 at 11:51 PM, Erich Dollansky <
freebsd.ed.lists at sumeritec.com> wrote:

> Hi,
>
> On Fri, 10 Aug 2018 12:40:48 +0800
> blubee blubeeme <gurenchan at gmail.com> wrote:
>
> > On Fri, Aug 10, 2018 at 8:28 AM Erich Dollansky <
> > freebsd.ed.lists at sumeritec.com> wrote:
> >
> > > Hi,
> > >
> > > On Fri, 10 Aug 2018 08:01:42 +0800
> > > blubee blubeeme <gurenchan at gmail.com> wrote:
> > >
> > > > What's the proper way to define and include FreeBSD amd64 in GNU
> > > > Makefiles
> > > >
> > > > Do we define FreeBSD as x86_64 or amd64 also is it __FreeBSD__,
> > > > FreeBSD__, or __FreeBSD
> > > >
> > > > I've seen all of the above looking through different projects.
> > >
> > > clang defines '__FreeBSD__'
> > >
> > > Erich
> > >
> >
> > What about the architecture name is it recommended to use x86_64 or
> > amd64?
>
> my clang reports on an Intel CPU:
>
> #define __amd64 1
> #define __amd64__ 1
> #define __x86_64 1
> #define __x86_64__ 1
>
> as defined.
>
> It reports
>
> #define __aarch64__ 1
>
> on an 64 bit ARM CPU.
>

'man 7 arch' will tell you these things:

           amd64              __amd64__, __x86_64__

it contains the preferred list of macros to use. Ideally, you'd use the
first one listed, though all the ones listed are supported. Others might
not be.

Warner


More information about the freebsd-current mailing list