Skip to content
Snippets Groups Projects
  • Andres Freund's avatar
    de6429a8
    Provide a generic fallback for pg_compiler_barrier using an extern function. · de6429a8
    Andres Freund authored
    If the compiler/arch combination does not provide compiler barriers,
    provide a fallback. That fallback simply consists out of a function
    call into a externally defined function.  That should guarantee
    compiler barrierer semantics except for compilers that do inter
    translation unit/global optimization - those better provide an actual
    compiler barrier.
    
    Hopefully this fixes Tom's report of linker failures due to
    pg_compiler_barrier_impl not being provided.
    
    I'm not backpatching this commit as it builds on the new atomics
    infrastructure. If we decide an equivalent fix needs to be
    backpatched, I'll do so in a separate commit.
    
    Discussion: 27746.1420930690@sss.pgh.pa.us
    
    Per report from Tom Lane.
    de6429a8
    History
    Provide a generic fallback for pg_compiler_barrier using an extern function.
    Andres Freund authored
    If the compiler/arch combination does not provide compiler barriers,
    provide a fallback. That fallback simply consists out of a function
    call into a externally defined function.  That should guarantee
    compiler barrierer semantics except for compilers that do inter
    translation unit/global optimization - those better provide an actual
    compiler barrier.
    
    Hopefully this fixes Tom's report of linker failures due to
    pg_compiler_barrier_impl not being provided.
    
    I'm not backpatching this commit as it builds on the new atomics
    infrastructure. If we decide an equivalent fix needs to be
    backpatched, I'll do so in a separate commit.
    
    Discussion: 27746.1420930690@sss.pgh.pa.us
    
    Per report from Tom Lane.