Bug 232227

Summary: Can't compile <linux/cdrom.h> in C++ with -pedantic.
Product: Red Hat Enterprise Linux 5 Reporter: Scott Bambrough <scottb>
Component: kernelAssignee: Red Hat Kernel Manager <kernel-mgr>
Status: CLOSED NOTABUG QA Contact: Martin Jenner <mjenner>
Severity: low Docs Contact:
Priority: medium    
Version: 5.0CC: awithers, dzickus
Target Milestone: ---   
Target Release: ---   
Hardware: i386   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2007-09-05 22:15:40 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Scott Bambrough 2007-03-14 14:26:05 UTC
To reproduce compile the following code using g++.

//file: test.cpp
#include <linux/cdrom.h>
int main(int argc, char **argv) {
  return 0;
}

Compiling the above with gcc 4.11 on RedHat 5 RC1 yields:

g++ -o test test.cpp
This compile succeeds.

g++ -pedantic -o test test.cpp
This compile fails with errors in <linux/byteorder/swab.h>

/usr/include/linux/byteorder/swab.h: In function ‘__u16 __fswab16(__u16)’:
/usr/include/linux/byteorder/swab.h:134: error: ISO C++ forbids
/braced-groups within expressions
/usr/include/linux/byteorder/swab.h:134: error: ISO C++ forbids
/braced-groups within expressions
/usr/include/linux/byteorder/swab.h: In function ‘__u16 __swab16p(const
/__u16*)’:
/usr/include/linux/byteorder/swab.h:138: error: ISO C++ forbids
/braced-groups within expressions
/usr/include/linux/byteorder/swab.h:138: error: ISO C++ forbids
/braced-groups within expressions
/usr/include/linux/byteorder/swab.h: In function ‘void __swab16s(__u16*)’:
/usr/include/linux/byteorder/swab.h:142: error: ISO C++ forbids
/braced-groups within expressions
/usr/include/linux/byteorder/swab.h:142: error: ISO C++ forbids
/braced-groups within expressions

Comment 1 Ernie Petrides 2007-09-05 22:15:40 UTC
Being able to compile kernel-private header files in C++ is not a requirement.