123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529 |
- {% set build_num = gcc_version_build_number %}
- # You can use this to allow investigating errors in more recent glibcs than
- # you have RPMs to make the sysroot packages from.
- {% set hack_sysroot_ver = False %}
- # {% set hack_sysroot_ver = '2.17' %}
- {% set build_string = 'h' + PKG_HASH + '_' + PKG_BUILDNUM %}
- package:
- name: gcc-compiler
- version: {{ gcc_version }}
- source:
- path: .
- build:
- merge_build_host: False
- # defined in conda_build_config.yaml so that we can keep it associated
- # with a particular GCC version number
- number: {{ build_num | default(0) }}
- # trigger: 0
- string: {{ build_string }}
- skip: True # [not linux]
- # The CentOS7 system libraries should be used for everything here.
- # We do not have CDT packages yet, nor compilers that would use them!
- missing_dso_whitelist:
- - "*"
- requirements:
- build:
- # due a conda-build issue compiler-activation can't be used as
- # it leads to direct conflicts ...
- - {{ compiler('c') }} # [hidden_dep]
- - {{ compiler('cxx') }} # [hidden_dep]
- # instead we install this dependency during build
- - llvm-tools # [osx]
- - make
- - bash # [not (ppc64le or s390x or aarch64)]
- - autoconf
- - automake
- - libtool
- - bison
- - flex
- - sed
- - patch
- - gawk
- - m4
- - help2man
- - texinfo
- - git
- # Need something here so that build does not get installed to a long prefix
- # as that breaks on some systems.
- host:
- - bison
- outputs:
- - name: libgcc-devel_{{ target_platform }}
- script: install_scripts/install-libgcc-devel.sh
- build:
- number: {{ build_num }}
- string: {{ build_string }}
- detect_binary_files_with_prefix: False
- binary_relocation: False
- missing_dso_whitelist:
- - "*"
- requirements:
- host:
- - sysroot_{{ target_platform }}
- test:
- commands:
- - test -f ${PREFIX}/lib/gcc/{{ cpu_arch }}-conda-linux-gnu/{{ gcc_version }}/crtbegin.o
- about:
- summary: The GNU C development libraries and object files
- home: https://gcc.gnu.org/
- license: GPL-3.0-only WITH GCC-exception-3.1
- - name: libstdcxx-devel_{{ target_platform }}
- script: install_scripts/install-libstdc++-devel.sh
- build:
- number: {{ build_num }}
- string: {{ build_string }}
- detect_binary_files_with_prefix: False
- binary_relocation: False
- missing_dso_whitelist:
- - "*"
- test:
- commands:
- - test -f ${PREFIX}/{{ cpu_arch }}-conda-linux-gnu/lib64/libstdc++.a
- about:
- summary: The GNU C++ headers and development libraries
- home: https://gcc.gnu.org/
- license: GPL-3.0-only WITH GCC-exception-3.1
- - name: gcc_impl_{{ target_platform }}
- script: install_scripts/install-gcc.sh
- build:
- number: {{ build_num }}
- string: {{ build_string }}
- detect_binary_files_with_prefix: False
- binary_relocation:
- - 'bin/*'
- - 'lib/*.so*'
- - 'libexec/**/*.so*'
- - 'libexec/**/cc1*'
- - 'libexec/**/collect2'
- - 'libexec/**/gcc'
- - 'libexec/**/lto*'
- - 'libexec/**/plugin/gengtype'
- missing_dso_whitelist:
- - '*'
- runpath_whitelist:
- - "x86_64-conda-linux-gnu/sysroot/lib/libpthread-2.12.2.so"
- - "aarch64-conda-linux-gnu/sysroot/lib64/libpthread-2.26.so"
- ignore_run_exports:
- - __glibc
- - libgomp
- - sysroot_{{ target_platform }}
- requirements:
- host:
- - {{ pin_subpackage("libgomp", exact=True) }}
- - {{ pin_subpackage("libstdcxx-ng", exact=True) }}
- - {{ pin_subpackage("libgcc-ng", exact=True) }}
- - {{ pin_subpackage("libgfortran" ~ libgfortran_soname) }}
- - sysroot_{{ target_platform }} {{ conda_glibc_ver }}
- run:
- - binutils_impl_{{ target_platform }} >=2.38
- - {{ pin_subpackage("libgcc-devel_" ~ target_platform, exact=True) }}
- # libstdcxx-ng is a runtime dep of gcc because LTO requires it.
- - {{ pin_subpackage("libstdcxx-ng", max_pin=None) }}
- - {{ pin_subpackage("libgcc-ng", max_pin=None) }}
- - {{ pin_subpackage("libgomp", max_pin=None) }}
- - sysroot_{{ target_platform }}
- - libstdcxx-ng >=4.9
- - libgcc-ng >=4.9
- run_exports:
- # impose this requirement across the build/host boundary
- strong:
- - libgcc-ng >={{ gcc_version }}
- test:
- requires:
- {% if hack_sysroot_ver %}
- - sysroot_{{ target_platform }} {{ hack_sysroot_ver }}.*
- {% else %}
- - sysroot_{{ target_platform }} {{ conda_glibc_ver }}.*
- {% endif %}
- files:
- - tests
- commands:
- - echo {{ target_platform }}
- - echo {{ conda_glibc_ver }}
- - echo conda
- - echo {{ kernel_version }}
- - test -f ${PREFIX}/{{ cpu_arch }}-conda-linux-gnu/sysroot/lib/libgomp.so
- - test `readlink ${PREFIX}/{{ cpu_arch }}-conda-linux-gnu/sysroot/lib/libgomp.so` == "../../../lib/libgomp.so"
- - test `readlink ${PREFIX}/lib/libgomp.so` == "libgomp.so.1.0.0"
- - test -f ${PREFIX}/bin/{{ cpu_arch }}-conda_cos7-linux-gnu-gcc
- - CC=$(${PREFIX}/bin/*-gcc -dumpmachine)-gcc
- - ${CC} -Wall tests/aligned_alloc.c -c -o c_aligned.o -v
- - ${CC} -Wall c_aligned.o -o c_aligned -v && ./c_aligned
- about:
- summary: GNU C Compiler
- home: https://gcc.gnu.org/
- license: GPL-3.0-only WITH GCC-exception-3.1
- - name: gxx_impl_{{ target_platform }}
- script: install_scripts/install-g++.sh
- build:
- number: {{ build_num }}
- string: {{ build_string }}
- detect_binary_files_with_prefix: False
- binary_relocation:
- - 'bin/*'
- - 'lib/*.so'
- - 'libexec/**/*.so*'
- - 'libexec/**/cc1*'
- missing_dso_whitelist:
- - "*"
- ignore_run_exports:
- - __glibc
- - sysroot_{{ target_platform }}
- requirements:
- host:
- # For cpp and crt{i,n}.o
- - {{ pin_subpackage("gcc_impl_" ~ target_platform, exact=True) }}
- run:
- # For cpp and crt{i,n}.o
- - {{ pin_subpackage("gcc_impl_" ~ target_platform, exact=True) }}
- # not needed due to pinning above but marks this build as using the new sysroots
- - sysroot_{{ target_platform }}
- - {{ pin_subpackage("libstdcxx-devel_" ~ target_platform, exact=True) }}
- run_exports:
- # impose this requirement across the build/host boundary
- strong:
- - libstdcxx-ng >={{ gcc_version }}
- test:
- requires:
- {% if hack_sysroot_ver %}
- - sysroot_{{ target_platform }} {{ hack_sysroot_ver }}.*
- {% else %}
- - sysroot_{{ target_platform }} {{ conda_glibc_ver }}.*
- {% endif %}
- files:
- - tests
- commands:
- - test -f ${PREFIX}/bin/{{ cpu_arch }}-conda_cos7-linux-gnu-g++
- - test -f ${PREFIX}/bin/{{ cpu_arch }}-conda-linux-gnu-g++
- - CXX=$(${PREFIX}/bin/*-gcc -dumpmachine)-g++
- - ${CXX} -Wall tests/aligned_alloc.cpp -c -o cpp_aligned.o --std=c++17
- - ${CXX} -Wall cpp_aligned.o -o cpp_aligned --std=c++17 && ./cpp_aligned
- about:
- summary: GNU C++ Compiler
- home: https://gcc.gnu.org/
- license: GPL-3.0-only WITH GCC-exception-3.1
- - name: gfortran_impl_{{ target_platform }}
- script: install_scripts/install-gfortran.sh
- build:
- number: {{ build_num }}
- string: {{ build_string }}
- detect_binary_files_with_prefix: False
- binary_relocation:
- - 'bin/*'
- - 'lib/*.so'
- - 'libexec/**/*.so*'
- - 'libexec/**/f951'
- missing_dso_whitelist:
- - "*"
- ignore_run_exports:
- - __glibc
- - sysroot_{{ target_platform }}
- requirements:
- build:
- # For cpp and crt{i,n}.o
- - {{ pin_subpackage("gcc_impl_" ~ target_platform, exact=True) }}
- host:
- - {{ pin_subpackage("gcc_impl_" ~ target_platform, exact=True) }}
- # not needed due to pinning above but marks this build as using the new sysroots
- - sysroot_{{ target_platform }}
- run:
- # For cpp and crt{i,n}.o
- - gcc_impl_{{ target_platform }} >={{ gcc_version }}
- - {{ pin_subpackage("libgfortran" ~ libgfortran_soname) }}
- - {{ pin_subpackage("libgcc-ng", max_pin=None) }}
- - sysroot_{{ target_platform }}
- - libgcc-ng >=4.9
- - libstdcxx-ng >=4.9
- run_exports:
- # impose this requirement across the build/host boundary
- strong:
- - libgfortran{{ libgfortran_soname }} {{ gcc_version }}.*
- - libgcc-ng >={{ gcc_version }}
- test:
- requires:
- - cmake
- {% if hack_sysroot_ver %}
- - sysroot_{{ target_platform }} {{ hack_sysroot_ver }}.*
- {% else %}
- - sysroot_{{ target_platform }} {{ conda_glibc_ver }}.*
- {% endif %}
- commands:
- - test -f ${PREFIX}/bin/{{ cpu_arch }}-conda_cos7-linux-gnu-gfortran
- - test -f ${PREFIX}/bin/{{ cpu_arch }}-conda-linux-gnu-gfortran
- - find $PREFIX/lib -iname omp_lib.mod | grep '.'
- - find $PREFIX/lib -iname omp_lib.h | grep '.'
- - pushd tests/fortomp || exit 1
- - sh test_fort.sh || true
- - popd
- files:
- - tests/fortomp/*
- about:
- summary: GNU Fortran Compiler
- home: https://gcc.gnu.org/
- license: GPL-3.0-only WITH GCC-exception-3.1
- - name: libstdcxx-ng
- target: {{ target_platform }}
- script: install_scripts/install-libstdc++.sh
- build:
- number: {{ build_num }}
- string: {{ build_string }}
- detect_binary_files_with_prefix: False
- binary_relocation: False
- missing_dso_whitelist:
- - "*"
- ignore_run_exports:
- - __glibc
- requirements:
- host:
- - sysroot_{{ target_platform }}
- test:
- commands:
- - test -f ${PREFIX}/lib/libstdc++.so
- about:
- summary: The GNU C++ Runtime Library
- home: https://gcc.gnu.org/
- license: GPL-3.0-only WITH GCC-exception-3.1
- - name: libgcc-ng
- target: {{ target_platform }}
- script: install_scripts/install-libgcc-no-gomp.sh
- requirements:
- host:
- - {{ pin_subpackage("libgomp", exact=True) }}
- - {{ pin_subpackage('_openmp_mutex', exact=True) }}
- - sysroot_{{ target_platform }}
- run:
- - _libgcc_mutex {{ _libgcc_mutex }}
- - _openmp_mutex
- run_constrained:
- - {{ pin_subpackage("libgomp", exact=True) }}
- - _libgcc_mutex {{ _libgcc_mutex }}
- - _openmp_mutex
- build:
- number: {{ build_num }}
- string: {{ build_string }}
- detect_binary_files_with_prefix: False
- binary_relocation: False
- missing_dso_whitelist:
- - "*"
- ignore_run_exports:
- - __glibc
- - _openmp_mutex
- test:
- requires:
- - sysroot_{{ target_platform }}
- commands:
- - test -f ${PREFIX}/lib/libgcc_s.so
- - test -f ${PREFIX}/lib/libgomp.so.{{ libgomp_ver[0:1] }}
- - test `readlink ${PREFIX}/lib/libgomp.so.{{ libgomp_ver[0:1] }}` == "libgomp.so.{{ libgomp_ver }}"
- about:
- summary: The GCC low-level runtime library
- home: https://gcc.gnu.org/onlinedocs/gccint/Libgcc.html
- license: GPL-3.0-only WITH GCC-exception-3.1
- - name: libgomp
- target: {{ target_platform }}
- script: install_scripts/install-libgomp.sh
- requirements:
- host:
- - sysroot_{{ target_platform }}
- run:
- - _libgcc_mutex {{ _libgcc_mutex }}
- build:
- number: {{ build_num }}
- string: {{ build_string }}
- detect_binary_files_with_prefix: False
- binary_relocation: False
- missing_dso_whitelist:
- - "*"
- run_exports:
- strong:
- - {{ pin_subpackage("_openmp_mutex", max_pin=None) }}
- ignore_run_exports:
- - __glibc
- test:
- requires:
- - sysroot_{{ target_platform }}
- commands:
- - test -f ${PREFIX}/lib/libgomp.so.{{ libgomp_ver }}
- - test ! -f ${PREFIX}/lib/libgomp.so.{{ libgomp_ver[0:1] }}
- about:
- summary: The GCC OpenMP implementation.
- home: https://gcc.gnu.org/onlinedocs/gccint/Libgcc.html
- license: GPL-3.0-only WITH GCC-exception-3.1
- - name: _openmp_mutex
- script: install_scripts/install-openmp_impl.sh
- version: {{ openmp_ver }}
- requirements:
- run:
- - _libgcc_mutex {{ _libgcc_mutex }}
- - libgomp >=7.5.0
- run_constrained:
- # conflict with previous name
- - openmp_impl 9999
- build:
- string: 1_gnu
- run_exports:
- strong:
- - {{ pin_subpackage("_openmp_mutex", max_pin=None) }}
- test:
- commands:
- - test -f ${PREFIX}/lib/libgomp.so.{{ libgomp_ver[0:1] }}
- - test `readlink ${PREFIX}/lib/libgomp.so.{{ libgomp_ver[0:1] }}` == "libgomp.so.{{ libgomp_ver }}"
- about:
- summary: OpenMP Implementation Mutex
- license: BSD-3-Clause
- license_file: ../LICENSE
- home: https://github.com/AnacondaRecipes/gcc-compiler-feedstock
- - name: libgfortran-ng
- target: {{ target_platform }}
- build:
- requirements:
- run:
- - libgfortran{{ libgfortran_soname }} {{ gcc_version }}.*
- test:
- commands:
- - test -f ${PREFIX}/lib/libgfortran.so
- about:
- summary: The GNU Fortran Runtime Library
- home: https://gcc.gnu.org/
- license: GPL-3.0-only WITH GCC-exception-3.1
- - name: libgfortran{{ libgfortran_soname }}
- target: {{ target_platform }}
- script: install_scripts/install-libgfortran.sh
- build:
- number: {{ build_num }}
- string: {{ build_string }}
- detect_binary_files_with_prefix: False
- binary_relocation: False
- missing_dso_whitelist:
- - "*"
- ignore_run_exports:
- - __glibc
- requirements:
- host:
- - sysroot_{{ target_platform }}
- run_constrained:
- - libgfortran-ng {{ gcc_version }} *_{{ build_num | default(0) }}
- test:
- commands:
- - test -f ${PREFIX}/lib/libgfortran.so
- about:
- summary: The GNU Fortran Runtime Library
- home: https://gcc.gnu.org/
- license: GPL-3.0-only WITH GCC-exception-3.1
- {% if gdb_version is defined %}
- - name: gdb_{{ target_platform }}
- target: {{ target_platform }}
- version: {{ gdb_version }}
- script: install_scripts/install-gdb.sh
- build:
- number: {{ build_num }}
- string: {{ build_string }}
- missing_dso_whitelist:
- - "*"
- about:
- summary: The GNU Project Debugger
- home: https://www.gnu.org/software/gdb/
- license: GPL
- {% endif %}
- {% if gdb_server_version is defined %}
- - name: gdb_server_{{ target_platform }}
- target: {{ target_platform }}
- version: {{ gdb_server_version }}
- script: install_scripts/install-gdb-server.sh
- build:
- number: {{ build_num }}
- string: {{ build_string }}
- missing_dso_whitelist:
- - "*"
- about:
- summary: The GNU Project Debugger
- home: https://www.gnu.org/software/gdb/
- license: GPL
- {% endif %}
- {% if ltrace_version is defined %}
- - name: ltrace_{{ target_platform }}
- target: {{ target_platform }}
- version: {{ ltrace_version }}
- script: install_scripts/install-ltrace.sh
- build:
- number: {{ build_num }}
- string: {{ build_string }}
- missing_dso_whitelist:
- - "*"
- about:
- summary: Ltrace is a debugging tool for recording library calls, and signals
- home: https://alioth.debian.org/projects/ltrace/
- license: GPL
- {% endif %}
- {% if strace_version is defined %}
- - name: strace_{{ target_platform }}
- target: {{ target_platform }}
- script: install_scripts/install-strace.sh
- build:
- number: {{ build_num }}
- string: {{ build_string }}
- missing_dso_whitelist:
- - "*"
- about:
- summary: Strace is a linux diagnostic, and debugging utility with cli
- home: https://strace.io
- license: GPL
- {% endif %}
- {% if duma_version is defined %}
- - name: duma_{{ target_platform }}
- target: {{ target_platform }}
- version: {{ duma_version }}
- script: install_scripts/install-duma.sh
- build:
- number: {{ build_num }}
- string: {{ build_string }}
- detect_binary_files_with_prefix: False
- binary_relocation:
- - 'bin/*'
- - 'lib/*.so*'
- - 'libexec/**/*.so*'
- missing_dso_whitelist:
- - "*"
- about:
- summary: DUMA is an open-source library to detect buffer overruns and under-runs in C and C++ programs.
- home: http://duma.sourceforge.net/
- license: GPL
- {% endif %}
- # make the linter happy
- about:
- summary: GNU Compiler Collection
- home: https://gcc.gnu.org/
- license: GPL-3.0-only WITH GCC-exception-3.1
- license_file:
- - gcc/COPYING
- - gcc/COPYING.lib
- - gcc/COPYING.RUNTIME
- - gcc/COPYING3
- - COPYING3.lib
- extra:
- recipe-maintainers:
- - katietz
|