Hi ! I found a workaround for this by removing the -fPIC Compiler option from devtools/bin/toolvars.pl. But i don't know if this is a good idea but it makes the build possible. But i still would like to have some asm expert tell me why gcc thinks that the ebx - register is destroyed even if it pushed before the operation and poped afterwards.
regards Hermann Am Samstag, den 31.12.2005, 12:50 +0100 schrieb Hermann Mundprecht: > Hi ! > > I am currently working on an gentoo ebuild for maxdb 7.6.0.16. > As gentoo developers decided to switch to gcc version 3.4.4 i am also > switching the build process of maxdb to gcc 3.4.4. > > For a complete build i had to change the following files: > src/SAPDB/RunTime/System/RTESys_AtomicOperation.c > src/SAPDB/RunTime/Communication/RTEComm_URIBuilder.hpp > src/SAPDB/Interfaces/Runtime/Util/IFRUtil_LinkedList.h > src/SAPDB/ServerTasks/SrvTasks_JobList.hpp > src/SAPDB/DataAccess/Data_ChainSplitSpaceBackwardRead.hpp > src/SAPDB/DataAccess/Data_ChainSplitSpaceForwardRead.hpp > > I will of course send the patches as soon as i have a complete build, > but for now i need help with the file RTESys_AtomicOperation.c. > > The compiler gives the following errors: > RTESys_AtomicOperation.c fast > RTESys_AtomicOperation.c: In function `RTESys_CmpxchgInt8': > RTESys_AtomicOperation.c:383: Fehler: PIC-Register »ebx« wird in »asm« > zerstört > RTESys_AtomicOperation.c: In function `RTESys_CmpxchgUInt8': > RTESys_AtomicOperation.c:435: Fehler: PIC-Register »ebx« wird in »asm« > zerstört > > As my assembler programming is a bit rusty (last used on a VAX 18 years > ago) i cannot correct the cause of the error that is in the following > assembler code: > > ... > __asm__ __volatile__ ( > "push %%ebx\n\t" > "movl %3, %%eax\n\t" > "movl %4, %%edx\n\t" > "movl %1, %%ebx\n\t" > "movl %2, %%ecx\n\t" > "lock; cmpxchg8b %0\n\t" > "movl %%edx, %6\n\t" > "movl %%eax, %5\n\t" > "pop %%ebx\n\t" > : > : "m"(*memoryPosition), > "m"(newValue), > "m"(resultLow), > "m"(expectedValue), > "m"(resultHigh), > "m"(resultLow), > "m"(resultHigh) > : "eax", "ebx", "ecx", "edx", "memory" > ); > > Can someone provide help with this ? > > thanks - Hermann > -- > Hermann Mundprecht <[EMAIL PROTECTED]> > > -- MaxDB Discussion Mailing List For list archives: http://lists.mysql.com/maxdb To unsubscribe: http://lists.mysql.com/[EMAIL PROTECTED]