Re: fail to build package with l4re snapshot [SOLVED]
On Thu May 22, 2025 at 4:17 PM CEST, Marcus Hähnel wrote: > Please apply the change from GitHub [0] to get rid of the pesky check. > You can download it as patch through this URL [1] it works for me, thanks! > [0] > https://github.com/kernkonzept/mk/commit/6bde458254693a7216adac4c91f528ff60747d27 > [1] > https://github.com/kernkonzept/mk/commit/6bde458254693a7216adac4c91f528ff60747d27.patch cheers, wth -- wth 220F 6A50 7BEF 8C33 3B4A 4404 99DE B3B4 1583 4AEF ___ l4-hackers mailing list -- [email protected] To unsubscribe send an email to [email protected]
Re: fail to build package with l4re snapshot
Hi, On 2025-05-22 16:03, Tianhao Wang wrote: On Thu May 22, 2025 at 3:51 PM CEST, Marcus Hähnel wrote: Packages that are outside the L4Re source tree are, by default, already excluded from the Control file consistency check since the concept of build order doesn't make much sense for packages that are built in isolation. So that error should not happen there. What is the error you see? Did you set the L4DIR correctly (which is required for the package to find the L4Re buildsystem)? So in this case the Control file should not be needed right? Here is the Makefile: ``` PKGDIR ?= . L4DIR ?= /path/to/l4re-snapshot-25.03.0/src/l4 TARGET = myfirstprogram SRC_C= main.c include $(L4DIR)/mk/prog.mk ``` build commands and error ``` # in snapshot root: make setup make # in /tmp/testpkg/ make O=PATH/TO/OBJ/L4 # error (same as before) path/to/src/l4/mk/binary.inc:396: *** /tmp/testpkg/Makefile: 'stdlibs compiler-rt' in REQUIRES_LIBS in Makefile but not in Control file requires. Stop. make: *** [/path/to/l4re-snapshot-25.03.0/src/l4/mk/binary.inc:195: /path/to/l4re-snapshot-25.03.0/obj/l4/x86/ext-pkg/tmp/testpkg/OBJ-x86_gen-std-l4f] Error 2 ``` You are of course right. Sorry for not checking this more thoroughly. I missed that the change that excludes external packages from these checks only happened after that snapshot was created. Please apply the change from GitHub [0] to get rid of the pesky check. You can download it as patch through this URL [1] Best regards, - Marcus [0] https://github.com/kernkonzept/mk/commit/6bde458254693a7216adac4c91f528ff60747d27 [1] https://github.com/kernkonzept/mk/commit/6bde458254693a7216adac4c91f528ff60747d27.patch cheers wth ___ l4-hackers mailing list -- [email protected] To unsubscribe send an email to [email protected]
Re: fail to build package with l4re snapshot
On Thu May 22, 2025 at 3:51 PM CEST, Marcus Hähnel wrote: > Hi, > > On 2025-05-22 15:25, Tianhao Wang wrote: >> How to do the same when the new package is defined outside of the l4re >> tree, which is recommended by the docs? e.g. >> >> l4re-snapshot # make setup && make >> ├── obj >> │ ├── fiasco >> │ └── l4 >> │ └── x86 # the l4 build dir >> └── src >> ├── fiasco >> └── l4 # make O= oldconfig >> >> mypkg # make O= ---> ERROR >> ├── Control >> ├── main.c >> └── Makefile >> > > Packages that are outside the L4Re source tree are, by default, already > excluded from the Control file consistency check since the concept of > build order doesn't make much sense for packages that are built in > isolation. So that error should not happen there. What is the error you > see? Did you set the L4DIR correctly (which is required for the package > to find the L4Re buildsystem)? So in this case the Control file should not be needed right? Here is the Makefile: ``` PKGDIR ?= . L4DIR ?= /path/to/l4re-snapshot-25.03.0/src/l4 TARGET = myfirstprogram SRC_C= main.c include $(L4DIR)/mk/prog.mk ``` build commands and error ``` # in snapshot root: make setup make # in /tmp/testpkg/ make O=PATH/TO/OBJ/L4 # error (same as before) path/to/src/l4/mk/binary.inc:396: *** /tmp/testpkg/Makefile: 'stdlibs compiler-rt' in REQUIRES_LIBS in Makefile but not in Control file requires. Stop. make: *** [/path/to/l4re-snapshot-25.03.0/src/l4/mk/binary.inc:195: /path/to/l4re-snapshot-25.03.0/obj/l4/x86/ext-pkg/tmp/testpkg/OBJ-x86_gen-std-l4f] Error 2 ``` cheers wth -- wth 220F 6A50 7BEF 8C33 3B4A 4404 99DE B3B4 1583 4AEF ___ l4-hackers mailing list -- [email protected] To unsubscribe send an email to [email protected]
Re: fail to build package with l4re snapshot
Hi, On 2025-05-22 15:25, Tianhao Wang wrote: How to do the same when the new package is defined outside of the l4re tree, which is recommended by the docs? e.g. l4re-snapshot # make setup && make ├── obj │ ├── fiasco │ └── l4 │ └── x86 # the l4 build dir └── src ├── fiasco └── l4 # make O= oldconfig mypkg # make O= ---> ERROR ├── Control ├── main.c └── Makefile Packages that are outside the L4Re source tree are, by default, already excluded from the Control file consistency check since the concept of build order doesn't make much sense for packages that are built in isolation. So that error should not happen there. What is the error you see? Did you set the L4DIR correctly (which is required for the package to find the L4Re buildsystem)? Best regards, - Marcus ___ l4-hackers mailing list -- [email protected] To unsubscribe send an email to [email protected]
Re: fail to build package with l4re snapshot
Hi, On Wed May 21, 2025 at 9:52 AM CEST, Marcus Hähnel wrote: > [...] > However, for the L4Re buildsystem to pick up the new Control file you > need to call make from the root directory of your l4re source tree at > least once. An oldconfig should suffice to rebuild the dependency > structure. > > So just call `make oldconfig` in the directory `path/to/src/l4/` and you > should be all set. This works for me, thanks! But if I understand correctly, this only covers packages defined under `src/l4/pkg/` How to do the same when the new package is defined outside of the l4re tree, which is recommended by the docs? e.g. l4re-snapshot # make setup && make ├── obj │ ├── fiasco │ └── l4 │ └── x86 # the l4 build dir └── src ├── fiasco └── l4 # make O= oldconfig mypkg # make O= ---> ERROR ├── Control ├── main.c └── Makefile > have fun trying out L4Re! I certainly do! cheers -- wth 220F 6A50 7BEF 8C33 3B4A 4404 99DE B3B4 1583 4AEF ___ l4-hackers mailing list -- [email protected] To unsubscribe send an email to [email protected]
RE: fail to build package with l4re snapshot
FYI: We were also bitten by this. We had to reinstall the OS and switch to Mint to make it go away. Perhaps consider a fix that will make the error unnecessary. KISS Principle should apply everywhere! Richard -Original Message- From: Marcus Hähnel Sent: Wednesday, May 21, 2025 3:53 AM To: Tianhao Wang Cc: [email protected] Subject: Re: fail to build package with l4re snapshot Hi, On 2025-05-20 18:56, Tianhao Wang via l4-hackers wrote: > […] > 4. and try to build it > > $ cd myfirstpkg > $ make O=/PATH/TO/SNAPSHOT/obj/l4/x86 > > error output: > > [myfirstpkg] ... Building Dependencies > path/to/src/l4/mk/binary.inc:396: *** /tmp/myfirstpkg/Makefile: > 'stdlibs compiler-rt' in REQUIRES_LIBS in Makefile but not in Control > file requires. Stop. > make: *** [path/to/src/l4/mk/binary.inc:195: > path/to/obj/l4/x86/ext-pkg/tmp/myfirstpkg/OBJ-x86_gen-std-l4f] Error 2 > > I attempted to add file `Control` to the package root conataining the > following but it doesn't work. > > requires: stdlibs compiler-rt > > > Am I doing anything wrong in adding a new package? Sorry for the > newbie question, I'm learning L4RE :) You actually did the right thing here! stdlibs should even suffice, since it pulls in the compiler-rt. However, for the L4Re buildsystem to pick up the new Control file you need to call make from the root directory of your l4re source tree at least once. An oldconfig should suffice to rebuild the dependency structure. So just call `make oldconfig` in the directory `path/to/src/l4/` and you should be all set. I hope that helped! I'll think about if I can improve that error message and / or maybe make this more intuitive and automated. Best regards and have fun trying out L4Re! - Marcus PS: Also have a look on l4re.org! We have guides and first steps added there that can often help. And if not please let us know what you are missing. > > cheers, > wth > > [1] https://os.inf.tu-dresden.de/download/snapshots/ ___ l4-hackers mailing list -- [email protected] To unsubscribe send an email to [email protected] ___ l4-hackers mailing list -- [email protected] To unsubscribe send an email to [email protected]
Re: fail to build package with l4re snapshot
Hi Richard, On 2025-05-21 13:34, Richard Clark wrote: FYI: We were also bitten by this. We had to reinstall the OS and switch to Mint to make it go away. Perhaps consider a fix that will make the error unnecessary. KISS Principle should apply everywhere! A reinstall wouldn't have been necessary (let alone switching distributions). Just calling `make` from the root of the source (or object) trees would have sufficed. The error itself is actually a useful feature because it prevents sporadic bogus errors on highly parallel builds, if people forget to specify dependencies in the Control file. However, seeing that this check is causing more issues than it solves I decided to restrict it to those global builds. There it is always ensured that the dependency graph is up-to-date anyways. And there is no expectation that dependencies are automatically build. So that should restrict the error to cases where there really might be a problem. The change will likely hit the public release in a few days after finalizing internal review and QA. Best regards, - Marcus Richard -Original Message- From: Marcus Hähnel Sent: Wednesday, May 21, 2025 3:53 AM To: Tianhao Wang Cc: [email protected] Subject: Re: fail to build package with l4re snapshot Hi, On 2025-05-20 18:56, Tianhao Wang via l4-hackers wrote: […] 4. and try to build it $ cd myfirstpkg $ make O=/PATH/TO/SNAPSHOT/obj/l4/x86 error output: [myfirstpkg] ... Building Dependencies path/to/src/l4/mk/binary.inc:396: *** /tmp/myfirstpkg/Makefile: 'stdlibs compiler-rt' in REQUIRES_LIBS in Makefile but not in Control file requires. Stop. make: *** [path/to/src/l4/mk/binary.inc:195: path/to/obj/l4/x86/ext-pkg/tmp/myfirstpkg/OBJ-x86_gen-std-l4f] Error 2 I attempted to add file `Control` to the package root conataining the following but it doesn't work. requires: stdlibs compiler-rt Am I doing anything wrong in adding a new package? Sorry for the newbie question, I'm learning L4RE :) You actually did the right thing here! stdlibs should even suffice, since it pulls in the compiler-rt. However, for the L4Re buildsystem to pick up the new Control file you need to call make from the root directory of your l4re source tree at least once. An oldconfig should suffice to rebuild the dependency structure. So just call `make oldconfig` in the directory `path/to/src/l4/` and you should be all set. I hope that helped! I'll think about if I can improve that error message and / or maybe make this more intuitive and automated. Best regards and have fun trying out L4Re! - Marcus PS: Also have a look on l4re.org! We have guides and first steps added there that can often help. And if not please let us know what you are missing. cheers, wth [1] https://os.inf.tu-dresden.de/download/snapshots/ ___ l4-hackers mailing list -- [email protected] To unsubscribe send an email to [email protected] ___ l4-hackers mailing list -- [email protected] To unsubscribe send an email to [email protected]
Re: fail to build package with l4re snapshot
Hi, On 2025-05-20 18:56, Tianhao Wang via l4-hackers wrote: […] 4. and try to build it $ cd myfirstpkg $ make O=/PATH/TO/SNAPSHOT/obj/l4/x86 error output: [myfirstpkg] ... Building Dependencies path/to/src/l4/mk/binary.inc:396: *** /tmp/myfirstpkg/Makefile: 'stdlibs compiler-rt' in REQUIRES_LIBS in Makefile but not in Control file requires. Stop. make: *** [path/to/src/l4/mk/binary.inc:195: path/to/obj/l4/x86/ext-pkg/tmp/myfirstpkg/OBJ-x86_gen-std-l4f] Error 2 I attempted to add file `Control` to the package root conataining the following but it doesn't work. requires: stdlibs compiler-rt Am I doing anything wrong in adding a new package? Sorry for the newbie question, I'm learning L4RE :) You actually did the right thing here! stdlibs should even suffice, since it pulls in the compiler-rt. However, for the L4Re buildsystem to pick up the new Control file you need to call make from the root directory of your l4re source tree at least once. An oldconfig should suffice to rebuild the dependency structure. So just call `make oldconfig` in the directory `path/to/src/l4/` and you should be all set. I hope that helped! I'll think about if I can improve that error message and / or maybe make this more intuitive and automated. Best regards and have fun trying out L4Re! - Marcus PS: Also have a look on l4re.org! We have guides and first steps added there that can often help. And if not please let us know what you are missing. cheers, wth [1] https://os.inf.tu-dresden.de/download/snapshots/ ___ l4-hackers mailing list -- [email protected] To unsubscribe send an email to [email protected]
