Created attachment 334088 [details, diff] udis86-1.7.ebuild.diff Currently there is USE flag of pic, while there is no apparent reason to build static archive. The attached patch builds the libudis86 as shared library. If the static archive is important we can add 'static USE and add --enable-static. Also some more cleanups for the ebuild, EAPI=4 and others. Thanks!
I understand that enabling PIC has certain drawbacks. The flag was only added because some users (not all) saw build issues with llvm otherwise. See bug 337969 and bug 317599 comment 6.
Hi! What are the drawbacks? all libraries in tree are PIC now... or should be. Thanks!
Also I think the policy is to create shared objects and not static objects, as if ebuild is updated static linked binaries will not be effected.
Alon is correct, the way PIC is handled now is simply wrong. The static library should not have PIC, the shared library HAS to have it, so a pic USE flag is generally speaking wrong. Pach loocks good to me.
Fine, feel free to commit this. Please also inform the llvm maintainer that he needs to adjust the dependency to dev-libs/udis86[pic(+)]
Hello llvm maintainers, This change will create shared library out of libudis86, it will always be PIC. What will be the simplest solution for you? 1. Add pic USE only for <udis86-1.7-r1 for these non llvm stable packages. 2. Leave fake udis86 pic USE for now, and when we stabilize we remove the pic USE from all llvm ebuilds (including these stable). Thanks.
as llvm uses EAPI>=4, dev-libs/udis86[pic(+)] should do exactly what is needed.
(In reply to comment #7) > as llvm uses EAPI>=4, dev-libs/udis86[pic(+)] should do exactly what is > needed. Nice! I did not know that! So llvm maintainers, can you please modify this so we can commit this? Thanks!
Indeed it works fine (both udis86 with or without pic USE-flag). I updated all llvm ebuilds in tree updated to dev-libs/udis86[pic(+)] dep
Thanks! udis86-1.7-r1 is producing shared library.