Title: musl-cross-make cross compiling and specifying "--with-libc=/custom/path/to/libc.so" is dismissed · Issue #97842 · python/cpython · GitHub
Open Graph Title: musl-cross-make cross compiling and specifying "--with-libc=/custom/path/to/libc.so" is dismissed · Issue #97842 · python/cpython
X Title: musl-cross-make cross compiling and specifying "--with-libc=/custom/path/to/libc.so" is dismissed · Issue #97842 · python/cpython
Description: Bug report Trying to integrate CPython 3.9.2 under Heads firmware (coreboot+linux payload). This is followup of old integration issue at linuxboot/heads#689 CPython 3.9.2 (as all other modules under Heads but coreboot) is built by first ...
Open Graph Description: Bug report Trying to integrate CPython 3.9.2 under Heads firmware (coreboot+linux payload). This is followup of old integration issue at linuxboot/heads#689 CPython 3.9.2 (as all other modules unde...
X Description: Bug report Trying to integrate CPython 3.9.2 under Heads firmware (coreboot+linux payload). This is followup of old integration issue at linuxboot/heads#689 CPython 3.9.2 (as all other modules unde...
Opengraph URL: https://github.com/python/cpython/issues/97842
X: @github
Domain: github.com
{"@context":"https://schema.org","@type":"DiscussionForumPosting","headline":"musl-cross-make cross compiling and specifying \"--with-libc=/custom/path/to/libc.so\" is dismissed","articleBody":"\u003c!--\r\n If you're new to Python and you're not sure whether what you're experiencing is a bug, the CPython issue tracker is not\r\n the right place to seek help. Consider the following options instead:\r\n\r\n - reading the Python tutorial: https://docs.python.org/3/tutorial/\r\n - posting in the \"Users\" category on discuss.python.org: https://discuss.python.org/c/users/7\r\n - emailing the Python-list mailing list: https://mail.python.org/mailman/listinfo/python-list\r\n - searching our issue tracker (https://github.com/python/cpython/issues) to see if\r\n your problem has already been reported\r\n--\u003e\r\n\r\n# Bug report\r\nTrying to integrate CPython 3.9.2 under Heads firmware (coreboot+linux payload). This is followup of old integration issue at https://github.com/osresearch/heads/issues/689\r\n\r\nCPython 3.9.2 (as all other modules under Heads but coreboot) is built by first building musl-cross-make and then having modules being build with musl-cross-make to have reproducible build environment, so that coreboot payload' linux kernel's initrd contains binaries needed in linux embedded environment (recovery shell and associated tools), are reproducible (this is the goal).\r\n\r\n# Your environment\r\n\r\n\u003c!-- Include as many relevant details as possible about the environment you experienced the bug in --\u003e\r\n\r\n- CPython versions tested on: 3.9.2 installed to build target 3.9.2 python\r\n- Operating system and architecture: debian-11 host build environement\r\n\r\nI'm experimenting with the following **build recipe**, and did a lot of variation without success https://github.com/osresearch/heads/blob/df50c5f7d242b502fc443157fd592b638da87af0/modules/python#L13-L33. \r\n\r\nThis results in configure script producing the following **config.log output**:\r\n[config.log](https://github.com/python/cpython/files/9709936/config.log)\r\n\r\nSo above build recipe produces:\r\n- a correct ./configure callm specifying `./configure --enable-optimizations --with-cxx-main=/home/user/heads/crossgcc/x86/bin/x86_64-linux-musl-gcc --with-libc=/home/user/heads/crossgcc/x86/x86_64-linux-musl/lib/libc.so --host x86_64-linux-musl --build x86_64 --disable-ipv6 --prefix= --exec-prefix=`\r\n- `--with-libc=\"$(musl-cross_libraries)\"` translates into config.log, correctly, into `configure:14435: result: set LIBC=\"/home/user/heads/crossgcc/x86/x86_64-linux-musl/lib/libc.so\"`. **This is the libc.so we need to rely on**\r\n- Unfortunately, the build fails ([See in CircleCI logs here](https://app.circleci.com/pipelines/github/tlaurion/heads/1205/workflows/4ad764c2-b1d4-4273-ba58-19cc322c44f0/jobs/10624?invite=true#step-103-3753)) with libc being completely dismissed. This results into error : `ImportError: /usr/lib/x86_64-linux-gnu/libc.so: invalid ELF header`. **This is the wrong libc.so of the host, not of the cross built environment.**\r\n\r\n# Expected behavior:\r\n- Specifying `--with-libc=/home/user/heads/crossgcc/x86/x86_64-linux-musl/lib/libc.so` should result in libc.so used from `/home/user/heads/crossgcc/x86/x86_64-linux-musl/lib/libc.so` **not** `/usr/lib/x86_64-linux-gnu/libc.so`. \r\n\r\nWhy is the host libc used even when libc is specified and found at configure?\r\n\r\n---\r\n\r\nWas gonna investigate and adapt OpenWrt patches at https://github.com/openwrt/packages/tree/master/lang/python/python3/patches but reading about cross build issues it would be better to have this fixed upstream then downstream into all projects trying to cross build for their embedded systems.\r\n\r\nAny insight?","author":{"url":"https://github.com/tlaurion","@type":"Person","name":"tlaurion"},"datePublished":"2022-10-04T19:32:18.000Z","interactionStatistic":{"@type":"InteractionCounter","interactionType":"https://schema.org/CommentAction","userInteractionCount":3},"url":"https://github.com/97842/cpython/issues/97842"}
| route-pattern | /_view_fragments/issues/show/:user_id/:repository/:id/issue_layout(.:format) |
| route-controller | voltron_issues_fragments |
| route-action | issue_layout |
| fetch-nonce | v2:03eef8c7-4e0b-b3d2-b3f4-3cdb5a7c4bdf |
| current-catalog-service-hash | 81bb79d38c15960b92d99bca9288a9108c7a47b18f2423d0f6438c5b7bcd2114 |
| request-id | A350:296041:FF47DB:16D7884:6A589C7B |
| html-safe-nonce | 9098159d78702f66e4f1e58b17fb39c49afc681045655df73846af570be9524f |
| visitor-payload | eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJBMzUwOjI5NjA0MTpGRjQ3REI6MTZENzg4NDo2QTU4OUM3QiIsInZpc2l0b3JfaWQiOiIyNzIzNTA3MzU5MTAwNDc2NTM5IiwicmVnaW9uX2VkZ2UiOiJpYWQiLCJyZWdpb25fcmVuZGVyIjoiaWFkIn0= |
| visitor-hmac | 1c3f5b946483f8542f1715e45e7d9c2ac804b5911ad2eb27a5f8241c11076cfe |
| hovercard-subject-tag | issue:1396748762 |
| github-keyboard-shortcuts | repository,issues,copilot |
| google-site-verification | Apib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I |
| octolytics-url | https://collector.github.com/github/collect |
| analytics-location | / |
| fb:app_id | 1401488693436528 |
| apple-itunes-app | app-id=1477376905, app-argument=https://github.com/_view_fragments/issues/show/python/cpython/97842/issue_layout |
| twitter:image | https://opengraph.githubassets.com/1891814daca3baae90ad8e8587af1a0c038964aa5fb793ead9f4f503f91d2d59/python/cpython/issues/97842 |
| twitter:card | summary_large_image |
| og:image | https://opengraph.githubassets.com/1891814daca3baae90ad8e8587af1a0c038964aa5fb793ead9f4f503f91d2d59/python/cpython/issues/97842 |
| og:image:alt | Bug report Trying to integrate CPython 3.9.2 under Heads firmware (coreboot+linux payload). This is followup of old integration issue at linuxboot/heads#689 CPython 3.9.2 (as all other modules unde... |
| og:image:width | 1200 |
| og:image:height | 600 |
| og:site_name | GitHub |
| og:type | object |
| og:author:username | tlaurion |
| hostname | github.com |
| expected-hostname | github.com |
| None | 5f2a0c7865178af3d91dd9f13b0cdfc3c73a2529c873d2780bb4c01271a57ec6 |
| turbo-cache-control | no-preview |
| go-import | github.com/python/cpython git https://github.com/python/cpython.git |
| octolytics-dimension-user_id | 1525981 |
| octolytics-dimension-user_login | python |
| octolytics-dimension-repository_id | 81598961 |
| octolytics-dimension-repository_nwo | python/cpython |
| octolytics-dimension-repository_public | true |
| octolytics-dimension-repository_is_fork | false |
| octolytics-dimension-repository_network_root_id | 81598961 |
| octolytics-dimension-repository_network_root_nwo | python/cpython |
| turbo-body-classes | logged-out env-production page-responsive |
| disable-turbo | false |
| browser-stats-url | https://api.github.com/_private/browser/stats |
| browser-errors-url | https://api.github.com/_private/browser/errors |
| release | 8aae7b8d6caacacf5c66eaeb2702d8dc88d85b4a |
| ui-target | full |
| theme-color | #1e2327 |
| color-scheme | light dark |
Links:
Viewport: width=device-width