| 1 | --- |
| 2 | - name: Update apt cache. |
| 3 | apt: update_cache=yes cache_valid_time=86400 |
| 4 | |
| 5 | - name: Add snapshot soures for gcc-11-powerpc/riscv64 |
| 6 | when: ansible_distribution == 'Debian' and ansible_distribution_major_version == '12' |
| 7 | block: |
| 8 | - ansible.builtin.copy: |
| 9 | dest: /etc/apt/preferences.d/snapshot.pref |
| 10 | content: "Package: *\nPin: origin \"snapshot.debian.org\"\nPin-Priority: 400\n" |
| 11 | when: cross_compilers_debian_bookworm_snapshot |
| 12 | - ansible.builtin.apt_repository: |
| 13 | repo: 'deb [check-valid-until=no] https://snapshot.debian.org/archive/debian/20230109T091852Z/ bookworm main' |
| 14 | state: "{{cross_compilers_debian_bookworm_snapshot|ternary('present', 'absent')}}" |
| 15 | - ansible.builtin.apt: |
| 16 | update_cache: true |
| 17 | |
| 18 | - name: Ensure cross-compilers packages are installed. |
| 19 | ansible.builtin.apt: |
| 20 | name: "{{ cross_compilers_packages | difference(lookup('vars', 'cross_compilers_packages_exclude_{{ansible_userspace_architecture|default(ansible_architecture)}}', default=[]))}}" |
| 21 | |
| 22 | - name: Install legacy cross compilers |
| 23 | when: ansible_distribution == 'Debian' and ansible_architecture == 'x86_64' and compilers_legacy_install |
| 24 | block: |
| 25 | # This step needs to happen after the cross compiler packages are installed |
| 26 | # so the libgcc cross libraries can be copied |
| 27 | - name: Copy gcc-cross libs |
| 28 | ansible.builtin.command: |
| 29 | argv: ['cp', '-r', "/usr/lib/gcc-cross/{{item}}/12/", "/usr/lib/gcc-cross/{{item}}/4.8.5"] |
| 30 | creates: "/usr/lib/gcc-cross/{{item}}/4.8.5" |
| 31 | with_items: |
| 32 | - aarch64-linux-gnu |
| 33 | - arm-linux-gnueabihf |
| 34 | - i686-linux-gnu |
| 35 | - powerpc64le-linux-gnu |
| 36 | - powerpc-linux-gnu |
| 37 | - riscv64-linux-gnu |
| 38 | - s390x-linux-gnu |
| 39 | - name: Download gcc-4.8 cross compiler binaries |
| 40 | # These binaries built from files/Containerfile |
| 41 | ansible.builtin.get_url: |
| 42 | url: https://obj.internal.efficios.com/jenkins/gcc-4.8-x86_64-linux-gnu-cross.tgz |
| 43 | dest: /root/gcc-4.8-x86_64-linux-gnu-cross.tgz |
| 44 | register: cross_gcc48_download |
| 45 | - name: Extract gcc-4.8 cross compiler binaries |
| 46 | when: cross_gcc48_download.changed |
| 47 | ansible.builtin.command: |
| 48 | argv: ['tar', '-C', '/', '-xzf', '/root/gcc-4.8-x86_64-linux-gnu-cross.tgz'] |
| 49 | |
| 50 | - name: Download gcc-5.5 cross compiler binaries |
| 51 | ansible.builtin.get_url: |
| 52 | url: https://obj.internal.efficios.com/jenkins/gcc-5.5-x86_64-linux-gnu-cross.tgz |
| 53 | dest: /root/gcc-5.5-x86_64-linux-gnu-cross.tgz |
| 54 | register: cross_gcc55_download |
| 55 | - name: Extract gcc-5.5 cross compiler binaries |
| 56 | when: cross_gcc55_download.changed |
| 57 | ansible.builtin.command: |
| 58 | argv: ['tar', '-xzf', '/root/gcc-5.5-x86_64-linux-gnu-cross.tgz', '-C', '/'] |