This is the mail archive of the
gcc-prs@gcc.gnu.org
mailing list for the GCC project.
ada/5798: problem with sys/socket.h
- From: markus dot breuer at materna dot de
- To: gcc-gnats at gcc dot gnu dot org
- Cc: markus dot breuer at gmx dot de
- Date: 1 Mar 2002 10:08:48 -0000
- Subject: ada/5798: problem with sys/socket.h
- Reply-to: markus dot breuer at materna dot de
>Number: 5798
>Category: ada
>Synopsis: problem with sys/socket.h
>Confidential: no
>Severity: serious
>Priority: medium
>Responsible: unassigned
>State: open
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Fri Mar 01 02:16:00 PST 2002
>Closed-Date:
>Last-Modified:
>Originator: markus.breuer@materna.de
>Release: unknown-1.0
>Organization:
>Environment:
Solaris 5.8
>Description:
There's a problem compiling following simple app:
#include <sys/socket.h>
void bind() { /* empty */ }
When using gcc 2.95.3 there are no problems. But when using 3.0.4 the compiler generates different symbols. Ich examined the cause and found following implementation within sys/socket.h:
--- snipp ---
#ifdef _XPG4_2
#ifdef __PRAGMA_REDEFINE_EXTNAME
#pragma redefine_extname bind __xnet_bind
--- snipp ---
In my opinion the constructs act like #define bind __xnet_bind and causes that the above function is not named bind, instead of this it is named __xnet_bind.
In my concrete problem bind was a member method named bind.
>How-To-Repeat:
try the above example
>Fix:
?!
>Release-Note:
>Audit-Trail:
>Unformatted: