Summary: | faulty sdksyms.c generated by the awk script in sdksyms.sh | ||||||
---|---|---|---|---|---|---|---|
Product: | xorg | Reporter: | Korey Lu <koreylu> | ||||
Component: | Server/General | Assignee: | Xorg Project Team <xorg-team> | ||||
Status: | RESOLVED FIXED | QA Contact: | Xorg Project Team <xorg-team> | ||||
Severity: | normal | ||||||
Priority: | medium | CC: | alainsergenagni, bryanh | ||||
Version: | git | Keywords: | patch | ||||
Hardware: | All | ||||||
OS: | Linux (All) | ||||||
Whiteboard: | |||||||
i915 platform: | i915 features: | ||||||
Attachments: |
|
Description
Korey Lu
2009-05-20 03:16:55 UTC
*** Bug 23779 has been marked as a duplicate of this bug. *** Confirming that this bug still exists in the current git. It's sdksyms.sh that's at fault, as I suspected. This can be triggered by a simple jhbuild by editing Xfuncproto.h like so... ... #if defined(__GNUC__) && (__GNUC__ >= 4) && !defined(__CYGWIN__) # define _X_EXPORT //__attribute__((visibility("default"))) # define _X_HIDDEN //__attribute__((visibility("hidden"))) # define _X_INTERNAL //__attribute__((visibility("internal"))) ... After doing so, trying to just 'Make' will result in the sorts of definitions that the reporter complained about. The problem seems to be around ... # type specifier may not be set, as in # extern _X_EXPORT unsigned name(...) if ($n !~ /[^a-zA-Z0-9_]/) { n++; ... where something like extern _X_EXPORT void OsBlockSignals (void); will have n at OsBlockSignals before the above snippet. After the n++, n becomes (void), resulting in &void being shown. Created attachment 39892 [details] [review] This patch fixes it for me. I ran into this problem cross-compiling xorg-server-1.7.1 with gcc-3.4.5. This patch fixes it for me. I too encountered this. Lost an hour and a multi-day delay. David's patch works for me. Fixes my Solaris builds with gcc 3.4.3 too. (I normally build with Sun Studio CC, which worked with the old script, but occassionally try gcc for the different set of warnings reported.) Submitted the patch to xorg-devel to get it into the review queue so it gets applied instead of just leaving it to rot in bugzilla. http://lists.x.org/archives/xorg-devel/2010-December/017088.html Pulled into git master now for 1.10: http://cgit.freedesktop.org/xorg/xserver/commit/?id=058b889fde47b4c32534f11ed651bf1749d1dbb2 sdksyms.sh (orig) will not get all extern functions and also has an XV bug. this new one i believe gets all. see patch: https://bugs.freedesktop.org/show_bug.cgi?id=86833 the old one tries to parse cpp output without bison, even though that's not as hard as parsing C, it is far trickier than the author thinks. still not perfect is a rule the new one uses to decide what symb is good. it's better i'd hate to say it's correct - i'm unsure. yet it leaves the casual make user in a much better position. |
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.