Summary: | app-arch/pax: fix build on musl | ||
---|---|---|---|
Product: | Gentoo Linux | Reporter: | A. Wilcox (awilfox) <awilfox.gentoo> |
Component: | Current packages | Assignee: | No maintainer - Look at https://wiki.gentoo.org/wiki/Project:Proxy_Maintainers if you want to take care of it <maintainer-needed> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | musl |
Priority: | Normal | ||
Version: | unspecified | ||
Hardware: | All | ||
OS: | Linux | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- | |
Bug Depends on: | |||
Bug Blocks: | 430702 | ||
Attachments: |
pax-20160306 ebuild patch
pax-20160306-glibc-to-linux.patch pax-20160306-glibc-to-linux.patch |
Created attachment 431006 [details, diff]
pax-20160306-glibc-to-linux.patch
Created attachment 431016 [details, diff]
pax-20160306-glibc-to-linux.patch
After discussion with upstream, I have updated the patch for the case of kFreeBSD and HURD using glibc.
(In reply to Andrew Wilcox (awilfox) from comment #0) > Created attachment 431004 [details, diff] [details, diff] > pax-20160306 ebuild patch > > pax requires a source patch and the standalone-fts library (like > dev-libs/libcgroup) to compile and run on the musl C library. > > While I was in there, I bumped EAPI to 6. EAPI=6 needs fixing in musl, see bug #571444. EAPI=5 is okay (In reply to Andrew Wilcox (awilfox) from comment #2) > Created attachment 431016 [details, diff] [details, diff] > pax-20160306-glibc-to-linux.patch > > After discussion with upstream, I have updated the patch for the case of > kFreeBSD and HURD using glibc. despite what upstream says __linux__ is wrong here. first even if you were to proceed this way, don't you want __LINUX__ all upper case? second, all of these macros are wrong minded. see https://blogs.gentoo.org/blueness/2016/03/31/why-macros-like-__glibc__-and-__uclibc__-are-bad/ See what upstream has to say to removing these and getting the right checks into configure.ac
> See what upstream has to say to removing these and getting the right checks
> into configure.ac
ah they dropped gnu autotools for pure make. okay so resolve the __linux__ vs __LINUX__ issue and then i'll commit.
No, unfortunately __LINUX__ is not defined by any compiler. awilcox on ciall [pts/8 Sun 17 17:01] tmp: gcc -dM -E - < /dev/null | grep -i LINUX #define __linux 1 #define __linux__ 1 #define __gnu_linux__ 1 #define linux 1 awilcox on ciall [pts/8 Sun 17 17:02] tmp: clang -dM -E - < /dev/null | grep -i LINUX #define __gnu_linux__ 1 #define __linux 1 #define __linux__ 1 #define linux 1 As for the EAPI 6 issue on Portage, thanks for the bug link... I've spent about two hours trying to patch it so I can merge Perl. Now I can just use the patch in that bug until the actual fix is committed. (In reply to Andrew Wilcox (awilfox) from comment #5) > No, unfortunately __LINUX__ is not defined by any compiler. > > awilcox on ciall [pts/8 Sun 17 17:01] tmp: gcc -dM -E - < /dev/null | grep > -i LINUX > #define __linux 1 > #define __linux__ 1 > #define __gnu_linux__ 1 > #define linux 1 > awilcox on ciall [pts/8 Sun 17 17:02] tmp: clang -dM -E - < /dev/null | grep > -i LINUX > #define __gnu_linux__ 1 > #define __linux 1 > #define __linux__ 1 > #define linux 1 okay so that's coming from the compiler, have you tried clang? > > As for the EAPI 6 issue on Portage, thanks for the bug link... I've spent > about two hours trying to patch it so I can merge Perl. Now I can just use > the patch in that bug until the actual fix is committed. use the overlay i have a quick fix in there. Yes, I pulled the patch in from the overlay. Thanks! As for clang, it's directly below the gcc output. Sorry if it wasn't spaced very well, it was a direct copy from my terminal. The ordering is different but neither one defines __LINUX__. (In reply to Andrew Wilcox (awilfox) from comment #7) > Yes, I pulled the patch in from the overlay. Thanks! > > As for clang, it's directly below the gcc output. Sorry if it wasn't spaced > very well, it was a direct copy from my terminal. The ordering is different > but neither one defines __LINUX__. doh! humans don't multitask as well as computers. i'll commit this directly to the overlay. (In reply to Anthony Basile from comment #8) > > i'll commit this directly to the overlay. i put it on the tree rather than the overlay |
Created attachment 431004 [details, diff] pax-20160306 ebuild patch pax requires a source patch and the standalone-fts library (like dev-libs/libcgroup) to compile and run on the musl C library. While I was in there, I bumped EAPI to 6.