Bug 657437 - does not compile: connection.c:620: error: invalid initializer
Summary: does not compile: connection.c:620: error: invalid initializer
Keywords:
Status: CLOSED RAWHIDE
Alias: None
Product: Fedora
Classification: Fedora
Component: systemtap
Version: 14
Hardware: All
OS: Linux
low
high
Target Milestone: ---
Assignee: Stan Cox
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On: 605588
Blocks:
TreeView+ depends on / blocked
 
Reported: 2010-11-26 02:37 UTC by Frank Ch. Eigler
Modified: 2011-01-26 17:57 UTC (History)
10 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of: 605588
Environment:
Last Closed: 2011-01-26 17:57:01 UTC
Type: ---
Embargoed:


Attachments (Terms of Use)

Description Frank Ch. Eigler 2010-11-26 02:37:56 UTC
+++ This bug was initially created as a clone of Bug #605588 +++

Description of problem:
connection.c:620: error: invalid initializer

Version-Release number of selected component (if applicable):
1.8.0-7

How reproducible:
always

Steps to Reproduce:
1. build it
2.
3.
  
Actual results:
fail

Expected results:
success

Additional info:
make[1]: Entering directory `/usr/src/redhat/BUILD/xorg-server-1.8.0/os'
  CC     connection.lo
connection.c: In function 'NotifyParentProcess':
connection.c:362: warning: ignoring return value of 'write', declared with attribute warn_unused_result
connection.c: In function 'AuthAudit':
connection.c:620: error: invalid initializer
make[1]: *** [connection.lo] Error 1

in the .i file
    XSERVER_CLIENT_AUTH(client->index, addr, client_pid, client_zid);
morphs into:

    do if (__builtin_expect ( client__auth_semaphore , 0)) { volatile __typeof__(((client->index))) arg1 = (client->index); volatile __typeof__(((addr))) arg2 = (addr); volatile __typeof__(((client_pid))) arg3 = (client_pid); volatile __typeof__(((client_zid))) arg4 = (client_zid); ; __asm__ volatile (".section .probes," "\"aw\"" "\n" "\t.balign 8\n" "1:\n\t.asciz " "\"client__auth\"" "\n" "\t.balign 4\n" "\t.int " "0x31425250" "\n" "\t.balign 8\n" "\t.quad " "1b\n" "\t.balign 8\n" "\t.quad " "2f" "\n" "\t.int 0\n" "\t.previous\n"); __asm__ volatile ("2:\n" "\tnop " "/* %0 %1 %2 %3 */" :: "g"(arg1), "g"(arg2), "g"(arg3), "g"(arg4)); } while (0);

--- Additional comment from fedora-triage-list on 2010-07-30 08:09:50 EDT ---


This bug appears to have been reported against 'rawhide' during the Fedora 14 development cycle.
Changing version to '14'.

More information and reason for this action is here:
http://fedoraproject.org/wiki/BugZappers/HouseKeeping

--- Additional comment from ajax on 2010-08-02 17:53:31 EDT ---

I suspect you have systemtap-sdt-devel installed.  Don't do that.

But we should probably fix the specfile to explicitly turn dtrace support off.

--- Additional comment from ajax on 2010-10-25 16:55:15 EDT ---

Fixed in rawhide.

--- Additional comment from bb on 2010-11-24 16:27:56 EST ---

Adam, can you, please, fix it for RHEL6 too? The same issue occures, when I rebuild xorg-x11-server-1.7.7-26.el6.src.rpm on RHEL6 box.

Thanks

--- Additional comment from fche on 2010-11-25 21:35:42 EST ---

"I suspect you have systemtap-sdt-devel installed.  Don't do that."

A more useful response would have been to involve the systemtap team in fixing whatever build problems arise.  I'll clone this bug to that effect.

Comment 1 Stan Cox 2010-12-09 14:28:18 UTC
v1 sdt support doesn't coerce types so it ends up doing something like:
 char x[256]; __typeof__ ((x)) arg2 = x; // not legal C.  
(This construct would work fine: char *a; a = alloca(256);)
The x[256] construct works okay with v2 and v3 sdt support because both coerce types.
So the choices would seem to be:
1. v1 sdt has a limitation that a probe argument cannot be an array type.
2. change v1 sdt to coerce like v2 and v3.

Comment 2 Frank Ch. Eigler 2011-01-26 17:57:01 UTC
systemtap 1.4 includes sdtv3, which has been tested to work with xorg.


Note You need to log in before you can comment on or make changes to this bug.