Re: target compilation?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, Sep 23, 2008 at 12:57 AM, Dave Anderson <anderson@xxxxxxxxxx> wrote:
> Jun Koi wrote:
>>
>> Hi,
>>
>> I looked at configure.c, and find some code like this:
>>
>> void
>> get_current_configuration(void)
>> {
>>    FILE *fp;
>>    static char buf[512];
>>    char *p;
>>
>> #ifdef __alpha__
>>        target_data.target = ALPHA;
>> #endif
>> #ifdef __i386__
>>        target_data.target = X86;
>> #endif
>> #ifdef __powerpc__
>>        target_data.target = PPC;
>> #endif
>> #ifdef __ia64__
>>        target_data.target = IA64;
>> #endif
>> ...
>> }
>>
>> I have few questions:
>> - Is it correct that the above code want to find out the architecture
>> (means target here) we are compiling our code on?
>
> Exactly.
>
>>
>> - Who defined those architectures in the above code, like "__i386__"
>> (in the check "#ifdef __i386__")? I guessed that the architecture is
>> defined in a particular prototype file in /usr/include, but cannot
>> find anything there. So I think that those macros are defined by
>> compilation process of crash, but again I dont see anywhere in the
>> source doing that.
>
> I forget where they are defined, but they're available to any compiled
> object without any explicit #include's, like this example on my x86_64
> machine:
>
>  # cat tmp.c
>  main()
>  {
>  #ifdef __x86_64__
>          printf("hello world\n");
>  #endif
>  }
>  #  make tmp
>  cc     tmp.c   -o tmp
>  # ./tmp
>  hello world
>  #
>

Thanks! It is nice to learn something new everyday ;-)

J

--
Crash-utility mailing list
Crash-utility@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/crash-utility

[Index of Archives]     [Fedora Development]     [Fedora Desktop]     [Fedora SELinux]     [Yosemite News]     [KDE Users]     [Fedora Tools]

 

Powered by Linux