Gcc builtin functions used by glibc not available on mips

H . J . Lu hjl@lucon.org
Wed Feb 6 23:20:00 GMT 2002


In glibc, there are codes

  /* Partly clean the `bootstrap_map' structure up.  Don't use
     `memset' since it might not be built in or inlined and we cannot
     make function calls at this point.  Use '__builtin_memset' if we
     know it is available.  */
#if __GNUC_PREREQ (2, 96) 
  __builtin_memset (bootstrap_map.l_info, '\0', sizeof (bootstrap_map.l_info));
#else
  for (cnt = 0;
       cnt < sizeof (bootstrap_map.l_info) / sizeof (bootstrap_map.l_info[0]);
       ++cnt)
    bootstrap_map.l_info[cnt] = 0;
#endif

used in ld.so bootstrap. The problem is even gcc 3.1 doesn't have a
real __builtin_memset for mips. I am very reluctant to call it a gcc
bug. Maybe we should check it during the gcc configure instead of
depending on "#if __GNUC_PREREQ (2, 96)".


H.J.



More information about the Libc-alpha mailing list