Re: target compilation?

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

 



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
  #

Dave










--
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