Ticket #197: sparc.patch

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

patch adding sparc(64) targets and a non-atomic CAS

  • libffado/src/libutil/Atomic.h

    old new  
    158158    return ret; 
    159159} 
    160160 
     161#else 
     162#warning no atomic CAS operation 
     163 
     164static inline char CAS(volatile uint32_t value, uint32_t newvalue, volatile int32_t* addr) 
     165{ 
     166    uint32_t oldvalue = *addr; 
     167    if (oldvalue == value) { 
     168        *addr = newvalue; 
     169    } 
     170    return 1; 
     171} 
     172 
    161173#endif 
    162174 
    163175#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' 
    414416    else: 
    415417        env['DIST_TARGET'] = 'i686' 
    416418    print "Detected DIST_TARGET = " + env['DIST_TARGET'] 
    417419 
    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)): 
     420if ((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)): 
    419421     
    420422    build_host_supports_sse = 0 
    421423    build_host_supports_sse2 = 0 
     
    490492        print "Doing a 64-bit x86 build" 
    491493        env.MergeFlags( "-m64" ) 
    492494        needs_fPIC = True 
     495    elif env['DIST_TARGET'] == "sparc64": 
     496        print "Doing a 64-bit SPARC build" 
     497        env.MergeFlags( "-m64" ) 
    493498    else: 
    494499        print "Doing a 32-bit build" 
    495500        env.MergeFlags( "-m32" )