compiling gcc 4.4.1 on Darwin 10.4 x86..trouble with __cpuid in cache detection code?

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

 



compiling gcc 4.4.1 on Darwin 10.4 x86
Darwin -- not MacOSX
 
same error with and without -disable-bootstrap
 
 
perhaps I should remove -O2 for the first go around?
I'll try that.
Nope, same error.



  -c /src/gcc-4.4.1/gcc/gccspec.c -o gccspec.o)
gcc -c  -g -O2 -DIN_GCC   -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing
-prototypes -Wcast-qual -Wmissing-format-attribute   -DHAVE_CONFIG_H -I. -I. -I/
src/gcc-4.4.1/gcc -I/src/gcc-4.4.1/gcc/. -I/src/gcc-4.4.1/gcc/../include -I/src/
gcc-4.4.1/gcc/../libcpp/include -I/obj/./gmp -I/src/gcc-4.4.1/gmp -I/obj/./mpfr
-I/src/gcc-4.4.1/mpfr  -I/src/gcc-4.4.1/gcc/../libdecnumber -I/src/gcc-4.4.1/gcc
/../libdecnumber/dpd -I../libdecnumber    -I. -I. -I/src/gcc-4.4.1/gcc -I/src/gc
c-4.4.1/gcc/. -I/src/gcc-4.4.1/gcc/../include -I/src/gcc-4.4.1/gcc/../libcpp/inc
lude -I/obj/./gmp -I/src/gcc-4.4.1/gmp -I/obj/./mpfr -I/src/gcc-4.4.1/mpfr  -I/s
rc/gcc-4.4.1/gcc/../libdecnumber -I/src/gcc-4.4.1/gcc/../libdecnumber/dpd -I../l
ibdecnumber   /src/gcc-4.4.1/gcc/config/i386/driver-i386.c
/src/gcc-4.4.1/gcc/config/i386/driver-i386.c: In function `detect_l2_cache':
/src/gcc-4.4.1/gcc/config/i386/driver-i386.c:65: error: can't find a register in
 class `BREG' while reloading `asm'
make[2]: *** [driver-i386.o] Error 1
make[1]: *** [all-gcc] Error 2
make: *** [all] Error 2

 
static void
detect_l2_cache (struct cache_desc *level2)
{
  unsigned eax, ebx, ecx, edx;
  unsigned assoc;
  __cpuid (0x80000006, eax, ebx, ecx, edx);
  level2->sizekb = (ecx>> 16) & 0xffff;
  level2->line = ecx & 0xff;
  assoc = (ecx>> 12) & 0xf;
  if (assoc == 6)
    assoc = 8;
  else if (assoc == 8)
    assoc = 16;
  else if (assoc>= 0xa && assoc <= 0xc)
    assoc = 32 + (assoc - 0xa) * 16;
  else if (assoc>= 0xd && assoc <= 0xe)
    assoc = 96 + (assoc - 0xd) * 32;
  level2->assoc = assoc;
}
 
hm..mayybe I should just change it to:
 
  level2->assoc = 0;

 
Maybe this is because the configuration is detected as plain old i386?
 
 
For now I've removed a bunch of the code and removed -Wall.
  (memset(0) the various structs)
I'll try again later with an explicit higher architecture.
Building Apple's gcc I was getting an illegal instruction..seemingly in libc.dylib but I didn't conform.
I tried changing Apple's code to use i586 instead of i686. No luck.
So I'm trying the FSF release and its build process (Apple has some custom scripts that I was using with their tree).
 
 
Then it gets further..darnit..:
 
checking how to run the C preprocessor... /lib/cpp
configure: error: in `/obj/i386-apple-darwin8.0.1/x86_64/libgcc':
configure: error: C preprocessor "/lib/cpp" fails sanity check
See `config.log' for more details.
make[1]: *** [configure-target-libgcc] Error 1
make: *** [all] Error 2
 
 
 - Jay


[Index of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux