-
Notifications
You must be signed in to change notification settings - Fork 94
Packager script broken on Arch Linux #51
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
Furthermore, when I run
So I run
But still no cigar, so I looked at the packager:
Should this really be union? Shouldn't it be one or the other? I have all 3 on my system because I package for those paltforms. Below is fixed version of
But... still no cigar, now the |
If I recall correctly, ArchLinux uses GNU libc, so I strongly recommend against using NO_LIBC. NO_LIBC is meant to be used only on AmazonLinux 2017.03 since it is guaranteed to be compatible with Lambda's environment.
That was fixed in v0.2.2, which version are you using?
It should not be a union. It should be just one. If you have all 3 on your system, only one of them should have GNU libc files.
No. It's not. It works perfectly fine on Debian, Ubuntu, Red Hat, Amazon Linux and Alpine. I don't have continuous integration for ArchLinux (I will add it after your feedback) |
I'm using git HEAD |
It appears to kick in when the binary is linked against
Whereas cmake/gcc linked the binary to
All other libraries that it links to are in UPDATE So on Arch (maybe elsewhere) |
Quick update, I updated the script (in a branch) to handle the case of linking to the loader's symlink instead of the loader itself. Also, I changed the test for Arch Linux. Instead of looking for the pattern I ran into a snag with pacman and I'm about to take a few days off, so that's the bad news. The output from pacman's database is not absolute file paths, instead they're like Also, it seems that Arch Linux ships with both glibc and musl libc. So, it might be worth looking into how to build your code on Arch using musl. |
Using "pacman -Flq", i.e. querying the remote file-list, is not an ideal way since one risks to run into desync issues between the remote state and the current state of the system. "pacman -Qlq glibc" will ensure that the file-list is current and it will return absolute paths as a bonus. |
@namarrgon awesome. I’ll give that a try |
@namarrgon @marcomagdy I tried the arch branch, and I can confirm that it currently is broken, however, after patching packager with |
@namarrgon Would it be possible to merge those changes along with the updated |
It's ready to merge, pending review. |
So, adding NO_LIBC to
aws_lambda_package_target(${PROJECT_NAME})
solved my issues. I looked intopackager
and found that if NO_LIBC is not set, then PKG_LD remains empty, and generatesbootstrap
file like this:Which of course fails. Looks pretty similar to #45 , this is on Arch Linux
The text was updated successfully, but these errors were encountered: