Ticket #197: sparc-gccbuiltin.patch

File sparc-gccbuiltin.patch, 2.6 kB (added by adi, 3 years ago)

use gcc builtins for ultrasparc

  • libffado/src/libutil/Atomic.h

    old new  
    158158    return ret; 
    159159} 
    160160 
     161#else 
     162#warning using builtin gcc (version >4.1) atomic 
     163 
     164static inline char CAS(volatile uint32_t value, uint32_t newvalue, volatile int32_t* addr) 
     165{ 
     166    return __sync_bool_compare_and_swap (addr, value, newvalue); 
     167} 
     168 
    161169#endif 
    162170 
    163171#endif 
  • libffado/SConstruct

    old new  
    7878  If you just want to use ffado with jack without the tools, you can disable this.\ 
    7979""", True ), 
    8080    BoolOption( "BUILD_STATIC_TOOLS", "Build a statically linked version of the FFADO tools.", False ), 
    81     EnumOption('DIST_TARGET', 'Build target for cross compiling packagers', 'auto', allowed_values=('auto', 'i386', 'i686', 'x86_64', 'powerpc', 'powerpc64', 'none' ), ignorecase=2), 
     81    EnumOption('DIST_TARGET', 'Build target for cross compiling packagers', 'auto', allowed_values=('auto', 'i386', 'i686', 'x86_64', 'powerpc', 'powerpc64', 'sparc', 'sparc64', 'none' ), ignorecase=2), 
    8282    BoolOption( "ENABLE_OPTIMIZATIONS", "Enable optimizations and the use of processor specific extentions (MMX/SSE/...).", False ), 
    8383        BoolOption( "PEDANTIC", "Enable -Werror and more pedantic options during compile.", False ), 
    8484 
     
    411411        env['DIST_TARGET'] = 'powerpc64' 
    412412    elif re.search("powerpc", config[config_cpu]) != None: 
    413413        env['DIST_TARGET'] = 'powerpc' 
     414    elif re.search("sparc", config[config_cpu]) != None: 
     415        env['DIST_TARGET'] = 'sparc' 
     416        env.MergeFlags("-mcpu=v9") 
    414417    else: 
    415418        env['DIST_TARGET'] = 'i686' 
    416419    print "Detected DIST_TARGET = " + env['DIST_TARGET'] 
    417420 
    418 if ((re.search ("i[0-9]86", config[config_cpu]) != None) or (re.search ("x86_64", config[config_cpu]) != None) or (re.search ("powerpc", config[config_cpu]) != None)): 
     421if ((re.search ("i[0-9]86", config[config_cpu]) != None) or (re.search ("x86_64", config[config_cpu]) != None) or (re.search ("powerpc", config[config_cpu]) != None) or (re.search ("sparc", config[config_cpu]) != None)): 
    419422     
    420423    build_host_supports_sse = 0 
    421424    build_host_supports_sse2 = 0 
     
    490493        print "Doing a 64-bit x86 build" 
    491494        env.MergeFlags( "-m64" ) 
    492495        needs_fPIC = True 
     496    elif env['DIST_TARGET'] == "sparc64": 
     497        print "Doing a 64-bit SPARC build" 
     498        env.MergeFlags( "-m64" ) 
    493499    else: 
    494500        print "Doing a 32-bit build" 
    495501        env.MergeFlags( "-m32" )