redefinition of 'inline namespace' in installed headers
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
wireless-tools (Ubuntu) |
Fix Released
|
High
|
Unassigned |
Bug Description
Binary package hint: xulrunner-1.9.1
This is insane, apparently breaking all platforms having long double 128 support (sparc, powerpc, alpha, s390). Doing that during the package build is one thing, installing this as public header files is annoying, breaking all builds on these platforms using these headers.
g++ -o nsWifiScannerUnix.o -c -fvisibility=hidden -DMOZILLA_
In file included from /usr/include/
/usr/include/
sparc-linux-
// Namespace associations for long double 128 mode.
#if defined _GLIBCXX_
namespace std
{
inline namespace __gnu_cxx_ldbl128 { }
}
which gets expanded to:
# 212 "/usr/include/
namespace std
{
inline __attribute_
}
Please really consider fixing this for karmic.
Changed in xulrunner-1.9.1 (Ubuntu): | |
importance: | Undecided → High |
milestone: | none → ubuntu-9.10 |
doko found this is a redifinition of inline and found that its in iwlib.h:
/* Make gcc understant that when we say inline, we mean it. HAS_BROKEN_ INLINE HAS_BROKEN_ INLINE 1 HAS_BROKEN_ INLINE 1 HAS_BROKEN_ INLINE _((always_ inline) ) HAS_BROKEN_ INLINE */
* I really hate when the compiler is trying to be more clever than me,
* because in this case gcc is not able to figure out functions with a
* single call site, so not only I have to tag those functions inline
* by hand, but then it refuse to inline them properly.
* Total saving for iwevent : 150B = 0.7%.
* Fortunately, in gcc 3.4, they now automatically inline static functions
* with a single call site. Hurrah !
* Jean II */
#undef IW_GCC_
#if __GNUC__ == 3
#if __GNUC_MINOR__ >= 1 && __GNUC_MINOR__ < 4
#define IW_GCC_
#endif /* __GNUC_MINOR__ */
#endif /* __GNUC__ */
/* However, gcc 4.0 has introduce a new "feature", when compiling with
* '-Os', it does not want to inline iw_ether_cmp() and friends.
* So, we need to fix inline again !
* Jean II */
#if __GNUC__ == 4
#define IW_GCC_
#endif /* __GNUC__ */
/* Now, really fix the inline */
#ifdef IW_GCC_
#ifdef inline
#undef inline
#endif /* inline */
#define inline inline __attribute_
#endif /* IW_GCC_
#ifdef __cplusplus
extern "C" {
#endif