mirror of the now-defunct rocklinux.org
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

105 lines
4.7 KiB

  1. If I'm really lucky, this fixes the following error building with gcc-4.0.0:
  2. ../sysdeps/ieee754/dbl-64/s_isinf.c:29: error: 'isinf' aliased to undefined symbol '__isinf'
  3. make[2]: *** [/home/dank/queue/jobdir.fast/crosstool-0.32/build/i686-unknown-linux-gnu/gcc-4.0.0-20050410-glibc-2.3.4/build-glibc/math/s_isinf.os] Error 1
  4. make[1]: *** [math/subdir_lib] Error 2
  5. make: *** [lib] Error 2
  6. patch taken from Dan Kegel's glibc patches
  7. ===================================================================
  8. RCS file: /cvs/glibc/libc/include/libc-symbols.h,v
  9. retrieving revision 1.70
  10. retrieving revision 1.71
  11. diff -u -r1.70 -r1.71
  12. --- libc/include/libc-symbols.h 2005/02/11 00:29:46 1.70
  13. +++ libc/include/libc-symbols.h 2005/03/17 21:06:27 1.71
  14. @@ -583,78 +583,23 @@
  15. # define hidden_proto(name, attrs...) \
  16. __hidden_proto (name, __GI_##name, ##attrs)
  17. # define __hidden_proto(name, internal, attrs...) \
  18. - extern __typeof (name) internal; \
  19. extern __typeof (name) name __asm__ (__hidden_asmname (#internal)) \
  20. __hidden_proto_hiddenattr (attrs);
  21. # define __hidden_asmname(name) \
  22. __hidden_asmname1 (__USER_LABEL_PREFIX__, name)
  23. # define __hidden_asmname1(prefix, name) __hidden_asmname2(prefix, name)
  24. # define __hidden_asmname2(prefix, name) #prefix name
  25. -# ifdef HAVE_ASM_SET_DIRECTIVE
  26. -# define __hidden_def1(original, alias) \
  27. - ASM_GLOBAL_DIRECTIVE C_SYMBOL_NAME (alias) ASM_LINE_SEP \
  28. - .set C_SYMBOL_NAME (alias), C_SYMBOL_NAME (original)
  29. -# ifdef HAVE_ASM_GLOBAL_DOT_NAME
  30. -# define __hidden_dot_def1(original, alias) ASM_LINE_SEP \
  31. - ASM_GLOBAL_DIRECTIVE C_SYMBOL_DOT_NAME (alias) ASM_LINE_SEP \
  32. - .set C_SYMBOL_DOT_NAME (alias), C_SYMBOL_DOT_NAME (original)
  33. -# else
  34. -# define __hidden_dot_def1(original, alias)
  35. -# endif
  36. -# else
  37. -# define __hidden_def1(original, alias) \
  38. - ASM_GLOBAL_DIRECTIVE C_SYMBOL_NAME (alias) ASM_LINE_SEP \
  39. - C_SYMBOL_NAME (alias) = C_SYMBOL_NAME (original)
  40. -# ifdef HAVE_ASM_GLOBAL_DOT_NAME
  41. -# define __hidden_dot_def1(original, alias) ASM_LINE_SEP \
  42. - ASM_GLOBAL_DIRECTIVE C_SYMBOL_DOT_NAME (alias) ASM_LINE_SEP \
  43. - C_SYMBOL_DOT_NAME (alias) = C_SYMBOL_DOT_NAME (original)
  44. -# else
  45. -# define __hidden_dot_def1(original, alias)
  46. -# endif
  47. -# endif
  48. -# define __hidden_def2(...) #__VA_ARGS__
  49. -# define __hidden_def3(...) __hidden_def2 (__VA_ARGS__)
  50. -# define hidden_def(name) \
  51. - __asm__ (__hidden_def3 (__hidden_def1 (__GI_##name, name) \
  52. - __hidden_dot_def1 (__GI_##name, name)));
  53. -# define hidden_data_def(name) \
  54. - __asm__ (__hidden_def3 (__hidden_def1 (__GI_##name, name)));
  55. -# define hidden_ver(local, name) \
  56. - __asm__ (__hidden_def3 (__hidden_def1 (local, __GI_##name) \
  57. - __hidden_dot_def1 (local, __GI_##name)));
  58. -# define hidden_data_ver(local, name) \
  59. - __asm__ (__hidden_def3 (__hidden_def1 (local, __GI_##name)));
  60. -# ifdef HAVE_WEAK_SYMBOLS
  61. -# ifdef HAVE_ASM_WEAKEXT_DIRECTIVE
  62. -# define __hidden_weak1(original, alias) \
  63. - .weakext C_SYMBOL_NAME (alias), C_SYMBOL_NAME (original)
  64. -# ifdef HAVE_ASM_GLOBAL_DOT_NAME
  65. -# define __hidden_dot_weak1(original, alias) ASM_LINE_SEP \
  66. - .weakext C_SYMBOL_DOT_NAME (alias), C_SYMBOL_DOT_NAME (original)
  67. -# else
  68. -# define __hidden_dot_weak1(original, alias)
  69. -# endif
  70. -# else /* ! HAVE_ASM_WEAKEXT_DIRECTIVE */
  71. -# define __hidden_weak1(original, alias) \
  72. - .weak C_SYMBOL_NAME (alias) ASM_LINE_SEP \
  73. - C_SYMBOL_NAME (alias) = C_SYMBOL_NAME (original)
  74. -# ifdef HAVE_ASM_GLOBAL_DOT_NAME
  75. -# define __hidden_dot_weak1(original, alias) ASM_LINE_SEP \
  76. - .weak C_SYMBOL_DOT_NAME (alias) ASM_LINE_SEP \
  77. - C_SYMBOL_DOT_NAME (alias) = C_SYMBOL_DOT_NAME (original)
  78. -# else
  79. -# define __hidden_dot_weak1(original, alias)
  80. -# endif
  81. -# endif
  82. -# define hidden_weak(name) \
  83. - __asm__ (__hidden_def3 (__hidden_weak1 (__GI_##name, name) \
  84. - __hidden_dot_weak1 (__GI_##name, name)));
  85. -# define hidden_data_weak(name) \
  86. - __asm__ (__hidden_def3 (__hidden_weak1 (__GI_##name, name)));
  87. -# else
  88. -# define hidden_weak(name) hidden_def (name)
  89. -# endif
  90. +# define __hidden_ver1(local, internal, name) \
  91. + extern __typeof (name) __EI_##name __asm__(__hidden_asmname (#internal)); \
  92. + extern __typeof (name) __EI_##name \
  93. + __attribute__((alias (__hidden_asmname (#local))))
  94. +# define hidden_ver(local, name) __hidden_ver1(local, __GI_##name, name);
  95. +# define hidden_data_ver(local, name) hidden_ver(local, name)
  96. +# define hidden_def(name) __hidden_ver1(__GI_##name, name, name);
  97. +# define hidden_data_def(name) hidden_def(name)
  98. +# define hidden_weak(name) \
  99. + __hidden_ver1(__GI_##name, name, name) __attribute__((weak));
  100. +# define hidden_data_weak(name) hidden_weak(name)
  101. # else
  102. /* For assembly, we need to do the opposite of what we do in C:
  103. in assembly gcc __REDIRECT stuff is not in place, so functions