From b433fbf27b8d6ccf6e13d4b6a28de556012576d7 Mon Sep 17 00:00:00 2001 From: Matthias Schiffer Date: Thu, 4 Apr 2024 18:33:49 +0200 Subject: examples: convert recipes with common sources to subrecipes --- examples/pins.yml.example | 6 ++-- examples/recipes/gcc-libs/build.yml | 32 ----------------- examples/recipes/gcc/build.libgcc-initial.yml | 51 ++++++++++++++++++++++++++ examples/recipes/gcc/build.libgcc.yml | 30 ++++++++++++++++ examples/recipes/gcc/build.libs.yml | 29 +++++++++++++++ examples/recipes/glibc/build.yml | 6 ++-- examples/recipes/libgcc-initial/build.yml | 52 --------------------------- examples/recipes/libgcc/build.yml | 32 ----------------- examples/recipes/linux-uapi-headers/build.yml | 22 ------------ examples/recipes/linux/build.uapi-headers.yml | 21 +++++++++++ examples/recipes/toolchain/build.yml | 4 +-- 11 files changed, 139 insertions(+), 146 deletions(-) delete mode 100644 examples/recipes/gcc-libs/build.yml create mode 100644 examples/recipes/gcc/build.libgcc-initial.yml create mode 100644 examples/recipes/gcc/build.libgcc.yml create mode 100644 examples/recipes/gcc/build.libs.yml delete mode 100644 examples/recipes/libgcc-initial/build.yml delete mode 100644 examples/recipes/libgcc/build.yml delete mode 100644 examples/recipes/linux-uapi-headers/build.yml create mode 100644 examples/recipes/linux/build.uapi-headers.yml diff --git a/examples/pins.yml.example b/examples/pins.yml.example index f4dc98f..c16cedb 100644 --- a/examples/pins.yml.example +++ b/examples/pins.yml.example @@ -2,12 +2,12 @@ rootfs-8d1fb3274ebc: hash: '8d1fb3274ebcb0f7ae88f3ce5810ad20014d08efca29e617a873670949de729d' is-rootfs: true provides: - - recipe: 'gcc-libs' + - recipe: 'gcc/libs' task: 'install' output: ['default'] args: host: 'build' - - recipe: 'linux-uapi-headers' + - recipe: 'linux/uapi-headers' task: 'install' output: ['default'] args: @@ -54,7 +54,7 @@ rootfs-8d1fb3274ebc: args: host: 'build' target: 'build' - - recipe: 'libgcc' + - recipe: 'gcc/libgcc' task: 'install' output: ['default'] args: diff --git a/examples/recipes/gcc-libs/build.yml b/examples/recipes/gcc-libs/build.yml deleted file mode 100644 index 2f566b8..0000000 --- a/examples/recipes/gcc-libs/build.yml +++ /dev/null @@ -1,32 +0,0 @@ -meta: - name: 'gcc' - version: '13.2.0' -tasks: - compile: - args: - host: 'platform' - inherit: - recipe: 'libgcc' - task: 'compile' - args: - host: 'build' - target: 'host' - run: | - cd {{basename}}-build - make all-target-libatomic all-target-libgomp all-target-libquadmath all-target-libstdc++-v3 - - install: - args: - host: 'platform' - inherit: - task: 'compile' - output: - default: - path: 'sysroot' - run: | - cd {{basename}}-build - make DESTDIR={{destdir}}/install install-target-libgcc install-target-libatomic install-target-libgomp install-target-libquadmath install-target-libstdc++-v3 - rm -r {{destdir}}/install{{build.prefix}}/lib/gcc - mv -T {{destdir}}/install/{{build_to_host.sysroot}} {{destdir}}/sysroot - cp -al {{destdir}}/install{{build.prefix}}/* {{destdir}}/sysroot{{host.prefix}} - rm {{destdir}}/sysroot{{host.prefix}}/lib/*.la diff --git a/examples/recipes/gcc/build.libgcc-initial.yml b/examples/recipes/gcc/build.libgcc-initial.yml new file mode 100644 index 0000000..ca24907 --- /dev/null +++ b/examples/recipes/gcc/build.libgcc-initial.yml @@ -0,0 +1,51 @@ +meta: + version: '13.2.0' +tasks: + configure: + args: + host: 'platform' + target: 'platform' + inherit: + recipe: 'gcc' + task: 'compile' + depends: + - recipe: 'gcc' + task: 'header-stubs' + run: | + cd {{basename}}-build + make configure-target-libgcc + + # A hack borrowed from OpenEmbedded: + # We can build an initial libgcc without having to rebuild the whole gcc + # afterwards by manipulating the Makefile + sed -i -r \ + -e 's@^(INHIBIT_LIBC_CFLAGS =).*@\1 -Dinhibit_libc@' \ + gcc/libgcc.mvars + sed -i -r \ + -e 's@^(thread_header =).*@\1 gthr-single.h@' \ + -e 's@^(enable_shared =).*@\1 no@' \ + {{target.gnu_triplet}}/libgcc/Makefile + + compile: + args: + host: 'platform' + target: 'platform' + inherit: + task: 'configure' + run: | + cd {{basename}}-build + make all-target-libgcc + + install: + args: + host: 'platform' + target: 'platform' + inherit: + task: 'compile' + output: + default: {} + run: | + cd {{basename}}-build + make DESTDIR={{destdir}} install-target-libgcc + + ln -s libgcc.a {{destdir}}{{host.prefix}}/lib/gcc/{{target.gnu_triplet}}/"$(cat ../{{basename}}-{{version}}/gcc/BASE-VER)"/libgcc_eh.a diff --git a/examples/recipes/gcc/build.libgcc.yml b/examples/recipes/gcc/build.libgcc.yml new file mode 100644 index 0000000..0c8cfd6 --- /dev/null +++ b/examples/recipes/gcc/build.libgcc.yml @@ -0,0 +1,30 @@ +tasks: + compile: + args: + host: 'platform' + target: 'platform' + inherit: + recipe: 'gcc' + task: 'compile' + depends: + - recipe: 'glibc' + task: 'install' + args: + host: 'target' + run: | + cd {{basename}}-build + make all-target-libgcc + + install: + args: + host: 'platform' + target: 'platform' + inherit: + task: 'compile' + output: + default: {} + run: | + cd {{basename}}-build + make DESTDIR={{destdir}} install-target-libgcc + rm {{destdir}}{{host_to_target.sysroot}}{{target.prefix}}/lib/libgcc_s.so* + rmdir -p --ignore-fail-on-non-empty {{destdir}}{{host_to_target.sysroot}}{{target.prefix}}/lib diff --git a/examples/recipes/gcc/build.libs.yml b/examples/recipes/gcc/build.libs.yml new file mode 100644 index 0000000..e69d318 --- /dev/null +++ b/examples/recipes/gcc/build.libs.yml @@ -0,0 +1,29 @@ +tasks: + compile: + args: + host: 'platform' + inherit: + recipe: 'gcc/libgcc' + task: 'compile' + args: + host: 'build' + target: 'host' + run: | + cd {{basename}}-build + make all-target-libatomic all-target-libgomp all-target-libquadmath all-target-libstdc++-v3 + + install: + args: + host: 'platform' + inherit: + task: 'compile' + output: + default: + path: 'sysroot' + run: | + cd {{basename}}-build + make DESTDIR={{destdir}}/install install-target-libgcc install-target-libatomic install-target-libgomp install-target-libquadmath install-target-libstdc++-v3 + rm -r {{destdir}}/install{{build.prefix}}/lib/gcc + mv -T {{destdir}}/install/{{build_to_host.sysroot}} {{destdir}}/sysroot + cp -al {{destdir}}/install{{build.prefix}}/* {{destdir}}/sysroot{{host.prefix}} + rm {{destdir}}/sysroot{{host.prefix}}/lib/*.la diff --git a/examples/recipes/glibc/build.yml b/examples/recipes/glibc/build.yml index 20e2363..16f2706 100644 --- a/examples/recipes/glibc/build.yml +++ b/examples/recipes/glibc/build.yml @@ -16,10 +16,10 @@ tasks: build_depends: - recipe: 'gcc' task: 'install' - - recipe: 'libgcc-initial' + - recipe: 'gcc/libgcc-initial' task: 'install' depends: - - recipe: 'linux-uapi-headers' + - recipe: 'linux/uapi-headers' task: 'install' run: | export BUILD_CC="$CC_FOR_BUILD" @@ -61,7 +61,7 @@ tasks: output: default: runtime_depends: - - recipe: 'linux-uapi-headers' + - recipe: 'linux/uapi-headers' task: 'install' run: | cd {{basename}}-build diff --git a/examples/recipes/libgcc-initial/build.yml b/examples/recipes/libgcc-initial/build.yml deleted file mode 100644 index 81cacfd..0000000 --- a/examples/recipes/libgcc-initial/build.yml +++ /dev/null @@ -1,52 +0,0 @@ -meta: - name: 'gcc' - version: '13.2.0' -tasks: - configure: - args: - host: 'platform' - target: 'platform' - inherit: - recipe: 'gcc' - task: 'compile' - depends: - - recipe: 'gcc' - task: 'header-stubs' - run: | - cd {{basename}}-build - make configure-target-libgcc - - # A hack borrowed from OpenEmbedded: - # We can build an initial libgcc without having to rebuild the whole gcc - # afterwards by manipulating the Makefile - sed -i -r \ - -e 's@^(INHIBIT_LIBC_CFLAGS =).*@\1 -Dinhibit_libc@' \ - gcc/libgcc.mvars - sed -i -r \ - -e 's@^(thread_header =).*@\1 gthr-single.h@' \ - -e 's@^(enable_shared =).*@\1 no@' \ - {{target.gnu_triplet}}/libgcc/Makefile - - compile: - args: - host: 'platform' - target: 'platform' - inherit: - task: 'configure' - run: | - cd {{basename}}-build - make all-target-libgcc - - install: - args: - host: 'platform' - target: 'platform' - inherit: - task: 'compile' - output: - default: {} - run: | - cd {{basename}}-build - make DESTDIR={{destdir}} install-target-libgcc - - ln -s libgcc.a {{destdir}}{{host.prefix}}/lib/gcc/{{target.gnu_triplet}}/"$(cat ../{{basename}}-{{version}}/gcc/BASE-VER)"/libgcc_eh.a diff --git a/examples/recipes/libgcc/build.yml b/examples/recipes/libgcc/build.yml deleted file mode 100644 index d7433fe..0000000 --- a/examples/recipes/libgcc/build.yml +++ /dev/null @@ -1,32 +0,0 @@ -meta: - name: 'gcc' -tasks: - compile: - args: - host: 'platform' - target: 'platform' - inherit: - recipe: 'gcc' - task: 'compile' - depends: - - recipe: 'glibc' - task: 'install' - args: - host: 'target' - run: | - cd {{basename}}-build - make all-target-libgcc - - install: - args: - host: 'platform' - target: 'platform' - inherit: - task: 'compile' - output: - default: {} - run: | - cd {{basename}}-build - make DESTDIR={{destdir}} install-target-libgcc - rm {{destdir}}{{host_to_target.sysroot}}{{target.prefix}}/lib/libgcc_s.so* - rmdir -p --ignore-fail-on-non-empty {{destdir}}{{host_to_target.sysroot}}{{target.prefix}}/lib diff --git a/examples/recipes/linux-uapi-headers/build.yml b/examples/recipes/linux-uapi-headers/build.yml deleted file mode 100644 index 3fadccd..0000000 --- a/examples/recipes/linux-uapi-headers/build.yml +++ /dev/null @@ -1,22 +0,0 @@ -meta: - name: 'linux' - version: '6.5.5' -tasks: - unpack: - fetch: - - name: '{{basename}}-{{version}}.tar.xz' - sha256: '8cf10379f7df8ea731e09bff3d0827414e4b643dd41dc99d0af339669646ef95' - run: | - tar xf {{dldir}}/{{basename}}-{{version}}.tar.xz - - install: - args: - host: 'platform' - inherit: - task: 'unpack' - output: - default: {} - run: | - cd {{basename}}-{{version}} - make INSTALL_HDR_PATH={{destdir}}{{host.prefix}} ARCH={{host.karch}} headers_install - diff --git a/examples/recipes/linux/build.uapi-headers.yml b/examples/recipes/linux/build.uapi-headers.yml new file mode 100644 index 0000000..10c2539 --- /dev/null +++ b/examples/recipes/linux/build.uapi-headers.yml @@ -0,0 +1,21 @@ +meta: + version: '6.5.5' +tasks: + unpack: + fetch: + - name: '{{basename}}-{{version}}.tar.xz' + sha256: '8cf10379f7df8ea731e09bff3d0827414e4b643dd41dc99d0af339669646ef95' + run: | + tar xf {{dldir}}/{{basename}}-{{version}}.tar.xz + + install: + args: + host: 'platform' + inherit: + task: 'unpack' + output: + default: {} + run: | + cd {{basename}}-{{version}} + make INSTALL_HDR_PATH={{destdir}}{{host.prefix}} ARCH={{host.karch}} headers_install + diff --git a/examples/recipes/toolchain/build.yml b/examples/recipes/toolchain/build.yml index ab8e6de..d612261 100644 --- a/examples/recipes/toolchain/build.yml +++ b/examples/recipes/toolchain/build.yml @@ -8,7 +8,7 @@ tasks: runtime_depends: - recipe: 'gcc' task: 'install' - - recipe: 'libgcc' + - recipe: 'gcc/libgcc' task: 'install' depends: @@ -19,7 +19,7 @@ tasks: runtime_depends: - recipe: 'glibc' task: 'install' - - recipe: 'gcc-libs' + - recipe: 'gcc/libs' task: 'install' build: -- cgit v1.2.3