Calng UPC can also be configured by using the GNU autoconf tools (configure). In most of the cases there is no difference between cmake configuration and autoconf, except in the following areas:

  • While cmake configuration is capable of configuring and building multiple instances of the runtime, autoconf is building only one of them, as specified by the configuration options.

1.1 General Options

  • –prefix=PREFIX

    Install architecture-independent files in PREFIX [/usr/local]

  • –exec-prefix=EPREFIX

    Install architecture-dependent files in EPREFIX [PREFIX]

  • –enable-optimized

    Compile with optimizations enabled (default is NO)

  • –enable-profiling

    Compile with profiling enabled (default is NO)

  • –enable-assertions

    Compile with assertion checks enabled (default is YES)

  • –enable-werror

    Compile with -Werror enabled (default is NO)

  • –enable-expensive-checks

    Compile with expensive debug checks enabled (default is NO)

  • –enable-debug-runtime

    Build runtime libs with debug symbols (default is NO)

  • –enable-debug-symbols

    Build compiler with debug symbols (default is NO if optimization is on and YES if it’s off)

  • –enable-keep-symbols

    Do not strip installed executables)

1.2 Optional Features

  • –enable-clang-upc2c

    Enable building of clang upc2c (default is YES)

  • –enable-clang-upc-runtime

    Enable building of clang upc runtime (default is YES)

  • –enable-upc-link-script

    Enable UPC’s use of a custom linker script; this will define the UPC shared section as a no load section on targets where this feature is supported (requires GNU LD)

  • –enable-upc-backtrace

    Enable UPC backtrace; Enable stack frame backtrace report when UPC run-time fatal errors occur or by user request (via signal)

  • –enable-upc-numa

    Enable UPC runtime NUMA support [default=’yes’]

1.3 Optional Configuration

  • –with-execinfo-lib-path

    Specify path for execinfo library

  • –with-execinfo-inc-path

    Specify path for execinfo include

  • –with-upc-pts

    UPC packed or struct pointer representation.

  • –with-upc-pts-packed-bits

    UPC packed pointer representation.

  • –with-upc-pts-vaddr-order

    UPC vaddr first or last.

  • –with-upc-runtime=MODEL

    Specify the runtime implementation model for UPC, where MODEL may be: ‘SMP’ (Symmetric Multiprocessing) or ‘Portals4’. [default=’SMP’]

  • –with-portals4=PATH

    Specify prefix directory for installed portals4 package

  • __–with-upc-job-launcher Select UPC Portals4 job launcher [default=slurm]

The following option are used only when ‘-fupc-ir’ option is provided on the compiler command line:

  • –with-upc-ir-rp-addrspace=ADDRSPACE

    Specify the LLVM address space for the UPC remote pointer (default=16)

  • –with-upc-ir-rp-bits=thread,addr

    Choose bit distribution in LLVM remote pointer representation (default=20,44)

1.4 Some influential environment variables

  • CC

    C compiler command

  • CFLAGS

    C compiler flags

  • LDFLAGS

    linker flags, e.g. -L if you have libraries in a nonstandard directory

  • CPPFLAGS

    C/C++/Objective C preprocessor flags, e.g. -I if you have headers in a nonstandard directory

  • CXX

    C++ compiler command

  • CXXFLAGS

    C++ compiler flags

  • CPP

    C preprocessor

  • CXXCPP

    C++ preprocessor

Use these variables to override the choices made by `configure’ or to help it to find libraries and programs with nonstandard names/locations.