Date: Mon, 13 Aug 2018 13:56:05 +0930 From: Shane Ambler <FreeBSD@ShaneWare.Biz> To: blubee blubeeme <gurenchan@gmail.com> Cc: FreeBSD current <freebsd-current@freebsd.org> Subject: Re: FreeBSD elf_machine_id Message-ID: <69ca3709-fea2-efad-b108-b9173261eefd@ShaneWare.Biz> In-Reply-To: <CALM2mEm1p=iq4BuGOgEJ%2B8hhmSmRtcwNFFa4b-BcWO1aSgy0SQ@mail.gmail.com> References: <CALM2mEmySWV-fVaFtrADi35=2ifL4YgeLWfuXHx9Q6c5SGjd7A@mail.gmail.com> <A1CEB6C9-5927-40CF-B0CE-B006B2A08574@FreeBSD.org> <CALM2mEmqy4wUvzQbeY5PmL1iwZuYBHM9XZYzPd5xS3i9Ce2XDw@mail.gmail.com> <CALM2mEm1p=iq4BuGOgEJ%2B8hhmSmRtcwNFFa4b-BcWO1aSgy0SQ@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On 12/8/18 11:32 pm, blubee blubeeme wrote: > On Sun, Aug 12, 2018 at 9:59 PM blubee blubeeme <gurenchan@gmail.com> wrote: > >> >> >> On Sun, Aug 12, 2018 at 7:43 PM Dimitry Andric <dim@freebsd.org> wrote: >> >>> On 12 Aug 2018, at 13:21, blubee blubeeme <gurenchan@gmail.com> wrote: >>>> >>>> What's the elf_machine_id for FreeBSD amd64 systems? >>>> >>>> How can I find this info? >>> >>> There isn't any FreeBSD-specific machine ID, just a machine ID for >>> x86-64 (aka amd64) in general: >>> >>> $ grep x86-64 /usr/include/sys/elf_common.h >>> #define EM_X86_64 62 /* Advanced Micro Devices x86-64 */ >>> #define EM_AMD64 EM_X86_64 /* Advanced Micro Devices x86-64 >>> (compat) */ >>> >>> -Dimitry >>> >>> Thank you for the clarification. >> >> I think in this case I was looking for 62. >> >> Best, >> Owen >> > Actually I had another quick question along these lines. > > if x86_64 is already defined should I bother changing those to amd64 or > just use x86_64 and make FreeBSD modifications where Linux specifics are > defined? As I understand it, AMD designed the 64bit extensions and early adopters referred to it as amd64, then when Intel adopted it they needed a more generic term, so x86_64 was started, now usually both __X86_64__ and __amd64__ are compiler defined based on the target. So it may depend on why you are asking for the elf_machine_id. For general C/C++ programming - #if defined(__x86_64__) // 64bit code #else // 32 bit code #endif or to be safe you can check all variations #if defined(__X86_64__) || defined(__amd64__) For freebsd specific changes - #if defined(__FreeBSD__) #include <sys/param.h> #if __FreeBSD_version < 1101000 // version specific see porters handbook for version list #endif #endif If you want to see all the compiler defined environment macros run clang++ -dM -E -x c /dev/null or clang++ -dM -E -x c++ /dev/null or for a 32bit env clang++ -dM -E -m32 -x c++ /dev/null works for clang and gcc. I believe when multiple variations exist, the __xx__ macros are most common eg use __x86_64__ not __x86_64 -- FreeBSD - the place to B...Software Developing Shane Ambler
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?69ca3709-fea2-efad-b108-b9173261eefd>