Gcc builtin functions used by glibc not available on mips
mike stump
mrs@windriver.com
Thu Feb 7 12:04:00 GMT 2002
> Date: Wed, 6 Feb 2002 22:25:54 -0800
> From: "H . J . Lu" <hjl@lucon.org>
> To: GNU C Library <libc-alpha@sources.redhat.com>
> Cc: gcc@gcc.gnu.org, echristo@redhat.com
> /* 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. */
Hum, if you cannot tolerate a function call, I tend to think that the
whole #if should go away. gcc might generate one for obscure reasons.
Also, your test for __builtin_memset doesn't seem to take into
consideration wether or not a call was generated. I'm not sure that
the test is right. If you want to be sure that no call is generated,
then I think you need a test that the assembly file doesn't contain
the word memset or bzero. If it does, then assume that that the call
was not inlined.
> #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.
More information about the Libc-alpha
mailing list