I'm now porting omniORB3(an ORB from AT&T) to RTLINUX.
I met an error from g++ after I included rtl_cpp.h to this project.

I think that this version of g++(2.95.3) cann't compile inline assembler code in the 
appropriate way.
I captured the executing screen as follows.

==============================================================
[root@soando orbcore]# make
/usr/bin/g++ -c -O2  -Wall -Wno-unused  -D_REENTRANT -I. -I./.. -I./../.. 
-DUSE_omniORB_logStream -D_OMNIORB_LIBRARY -DUnixArchitecture 
-DCONFIG_DEFAULT_LOCATION='"/etc/omniORB.cfg"' -I.  -I../../../../include -D__x86__ 
-D__linux__ -D__OSVERSION__=2 -DminimumCORBA -DRTLINUX  -D__KERNEL__ -Wall 
-Wstrict-prototypes -fno-strict-aliasing -pipe -fno-strength-reduce -m486 
-malign-loops=2 -malign-jumps=2 -malign-functions=2 -DCPU=686 -g -D__RTL__ -DMODULE 
-D_LOOSE_KERNEL_NAMES -O2 -I/usr/include/rtlinux -I/usr/include/rtlinux/posix -o poa.o 
poa.cc
In file included from /usr/include/asm/semaphore.h:39,
.......................
                 from ../../../../include/omniORB3/CORBA.h:260,
                 from poa.cc:119:
/usr/include/asm/system.h: In function `void __set_64bit(long long unsigned int *, 
unsigned int, unsigned int)':
/usr/include/asm/system.h:152: parse error before `::'
In file included from /usr/include/linux/fs.h:168,
.......................
                 from poa.cc:119:
/usr/include/asm/semaphore.h: In function `void down_read(rw_semaphore *)':
/usr/include/asm/semaphore.h:286: parse error before `::'
/usr/include/asm/semaphore.h:294: confused by earlier errors, bailing out
cpp0: output pipe has been closed
make: *** [poa.o] Error 1
=============================================================

Inline assembly code which arises an error is as follows.

Tell me how can I make this g++ recognize this C++ code.

============================================================
extern inline void __set_64bit (unsigned long long * ptr,
                unsigned int low, unsigned int high)
{
__asm__ __volatile__ (
        "1:     movl (%0), %%eax;
                movl 4(%0), %%edx;
                cmpxchg8b (%0);
                jnz 1b"
        ::              "D"(ptr),
                        "b"(low),
                        "c"(high)
        :
                        "ax","dx","memory");
}
===========================================================
Thank you

-- [rtl] ---
To unsubscribe:
echo "unsubscribe rtl" | mail [EMAIL PROTECTED] OR
echo "unsubscribe rtl <Your_email>" | mail [EMAIL PROTECTED]
--
For more information on Real-Time Linux see:
http://www.rtlinux.org/

Reply via email to