VirtualBox

Changeset 31375 in vbox


Ignore:
Timestamp:
Aug 4, 2010 9:41:06 PM (15 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
64432
Message:

gcc-4.4 workaround

Location:
trunk/src/VBox/Runtime/testcase
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Runtime/testcase/Makefile.kmk

    r31370 r31375  
    124124        tstRTProcIsRunningByName \
    125125        tstRTBitOperationsPIC3 \
     126        tstInlineAsmPIC \
    126127        tstInlineAsmPIC3
    127 if1of ($(USERNAME), umoeller)
    128 else
    129 PROGRAMS.linux += \
    130         tstInlineAsmPIC
    131 endif
    132128PROGRAMS.l4 += \
    133129        tstIoCtl
  • trunk/src/VBox/Runtime/testcase/tstInlineAsm.cpp

    r30801 r31375  
    3030#include <iprt/asm.h>
    3131#include <iprt/asm-math.h>
    32 #if defined(RT_ARCH_AMD64) || defined(RT_ARCH_X86)
     32
     33/* See http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44018. Only gcc version 4.4
     34 * is affected. No harm for the VBox code: If the cpuid code compiles, it works
     35 * fine. */
     36#if defined(__GNUC__) && defined(RT_ARCH_X86) && defined(__PIC__)
     37# if __GNUC__ == 4 && __GNUC_MINOR__ == 4
     38#  define GCC44_32BIT_PIC
     39# endif
     40#endif
     41
     42#if !defined(GCC44_32BIT_PIC) && (defined(RT_ARCH_AMD64) || defined(RT_ARCH_X86))
    3343# include <iprt/asm-amd64-x86.h>
    3444#else
     
    6979
    7080
    71 #if defined(RT_ARCH_AMD64) || defined(RT_ARCH_X86)
     81#if !defined(GCC44_32BIT_PIC) && (defined(RT_ARCH_AMD64) || defined(RT_ARCH_X86))
    7282
    7383const char *getCacheAss(unsigned u)
     
    166176    for (unsigned iStd = 0; iStd <= cFunctions + 3; iStd++)
    167177    {
     178        if (iStd == 4)
     179            continue; /* Leaf 04 output depends on the initial value of ECX */
    168180        ASMCpuId(iStd, &s.uEAX, &s.uEBX, &s.uECX, &s.uEDX);
    169181        RTPrintf("%08x  %08x %08x %08x %08x%s\n",
     
    12261238    RTPrintf("tstInlineASM: Benchmarking:\n");
    12271239
    1228 #if defined(RT_ARCH_AMD64) || defined(RT_ARCH_X86)
     1240#if !defined(GCC44_32BIT_PIC) && (defined(RT_ARCH_AMD64) || defined(RT_ARCH_X86))
    12291241# define BENCH(op, str) \
    12301242    do { \
     
    13211333     * Execute the tests.
    13221334     */
    1323 #if defined(RT_ARCH_AMD64) || defined(RT_ARCH_X86)
     1335#if !defined(GCC44_32BIT_PIC) && (defined(RT_ARCH_AMD64) || defined(RT_ARCH_X86))
    13241336    tstASMCpuId();
    13251337#endif
Note: See TracChangeset for help on using the changeset viewer.

© 2025 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette