Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 19 Jul 2016 23:08:54 -0600
From:      Warner Losh <imp@bsdimp.com>
To:        Jan Beich <jbeich@vfemail.net>
Cc:        Ed Maste <emaste@freebsd.org>, src-committers <src-committers@freebsd.org>, "svn-src-all@freebsd.org" <svn-src-all@freebsd.org>,  "svn-src-head@freebsd.org" <svn-src-head@freebsd.org>
Subject:   Re: svn commit: r303033 - head/share/man/man7
Message-ID:  <CANCZdfoCTpRMdrAwBzRTXnhBtph8J15oeZ==PDHF%2BCcJa5Y4XA@mail.gmail.com>
In-Reply-To: <wpkh-nhcg-wny@vfemail.net>
References:  <201607191746.u6JHk9ov092270@repo.freebsd.org> <wpkh-nhcg-wny@vfemail.net>

next in thread | previous in thread | raw e-mail | index | archive | help
On Tue, Jul 19, 2016 at 9:01 PM, Jan Beich <jbeich@vfemail.net> wrote:
> Ed Maste <emaste@FreeBSD.org> writes:
>
>> +.It Sy Architecture Ta Sy Page Sizes
>> +.It amd64       Ta 4K, 2M, 1G
>
> Does FreeBSD support 1G pages nowadays?
>
> $ sysctl hw.pagesizes
> hw.pagesizes: 4096 2097152 0
>
> $ dmesg | fgrep -i 1gb
>   AMD Features=0x2c100800<SYSCALL,NX,Page1GB,RDTSCP,LM>
>
>> +.Ss Predefined Macros
>> +The compiler provides a number of predefined macros.
>> +Some of these provide architecture-specific details and are explained below.
>> +Other macros, including those required by the language standard, are not
>> +included here.
> [...]
>> +cc -x c -Dm -E /dev/null
>
> Typo: -Dm vs. -dM
>
>> +.It Dv BYTE_ORDER Ta Either Dv BIG_ENDIAN or Dv LITTLE_ENDIAN .
>
> Are these really compiler macros? I think, <machine/endian.h> defines them.

sys/endian.h defines them (and it implements that by including machine/endian.h
in part).

> $ clang38 -x c -dM -E /dev/null | fgrep ENDIAN
> #define __BYTE_ORDER__ __ORDER_LITTLE_ENDIAN__
> #define __LITTLE_ENDIAN__ 1
> #define __ORDER_BIG_ENDIAN__ 4321
> #define __ORDER_LITTLE_ENDIAN__ 1234
> #define __ORDER_PDP_ENDIAN__ 3412
>
> $ gcc5 -x c -dM -E /dev/null | fgrep ENDIAN
> #define __ORDER_LITTLE_ENDIAN__ 1234
> #define __FLOAT_WORD_ORDER__ __ORDER_LITTLE_ENDIAN__
> #define __ORDER_PDP_ENDIAN__ 3412
> #define __ORDER_BIG_ENDIAN__ 4321
> #define __BYTE_ORDER__ __ORDER_LITTLE_ENDIAN__

This is why they are defined in machine/endian.h. Compilers have been
somewhat inconsistent in the past.

Warner



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CANCZdfoCTpRMdrAwBzRTXnhBtph8J15oeZ==PDHF%2BCcJa5Y4XA>