Slackware This Forum is for the discussion of Slackware Linux.
|
Notices |
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
Are you new to LinuxQuestions.org? Visit the following links:
Site Howto |
Site FAQ |
Sitemap |
Register Now
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
|
|
05-16-2014, 07:07 PM
|
#1
|
Member
Registered: Apr 2009
Location: Oz
Distribution: slackware64-14.0
Posts: 875
|
Recent - current libelf updates
Recently I noticed that libelf was changed to symlink some headers around, this sort of thing always strikes me as a bit of a hack so I decided to have a closer look.
According to libelf's README file
Quote:
Note to distribution makers: You can install libelf in a separate root hierarchy by using the command ``make instroot=/my/root install''. You should also use the ``--enable-compat'' configure option in that case, or run ``make instroot=/my/root install-compat'' manually, to install all the required header files.
|
And from the Slackbuild
Code:
--disable-compat \
make instroot=$PKG install || exit 1
Well we have the wrong options for a valid install and thus are missing the required headers resulting in programs failing to compile.
|
|
|
05-16-2014, 07:52 PM
|
#2
|
Member
Registered: Aug 2012
Posts: 484
Rep:
|
Would this change address the Mesa issue Robby Workman raised which prompted the symlinking to begin with?
Code:
--- a/libelf.SlackBuild
+++ b/libelf.SlackBuild
@@ -78,7 +78,7 @@ CFLAGS="$SLKCFLAGS" \
--libdir=/usr/lib${LIBDIRSUFFIX} \
--mandir=/usr/man \
--infodir=/usr/info \
- --disable-compat \
+ --enable-compat \
--build=$ARCH-slackware-linux
# Build:
@@ -87,11 +87,6 @@ make $NUMJOBS || make || exit 1
# Install:
make instroot=$PKG install || exit 1
-# Symlink headers to toplevel /usr/include:
-for header in $PKG/usr/include/libelf/* ; do
- ln -s libelf/$(basename $header) $PKG/usr/include/$(basename $header)
-done
-
# Strip binaries:
( cd $PKG
find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
--mancha
|
|
|
05-16-2014, 08:21 PM
|
#3
|
Member
Registered: Apr 2009
Location: Oz
Distribution: slackware64-14.0
Posts: 875
Original Poster
|
It should as the problem as mentioned by Pat was that it couldn't see the headers, the option copies the headers into usr/include/* as well as usr/include/libelf/* with the exception of the 2 private headers.
If Mesa is trying to include the private headers then a bug should be raised against the Mesa project for it as both private headers have explicit warnings not to directly include them.
|
|
|
05-17-2014, 01:54 PM
|
#4
|
Slackware Contributor
Registered: Oct 2004
Location: Tuscaloosa, Alabama (USA)
Distribution: Slackware
Posts: 2,560
|
Yeah, I think it will. Mesa 10.0.x and 10.1.x couldn't find gelf.h or libelf.h, even though both were installed on the system. It looks like the --enable-compat option will fix that, as it puts both of those headers in toplevel /usr/include/, and mesa would have found them there. Mesa should have checked pkg-config for the header location, which would have told it to look in both /usr/include/ and /usr/include/libelf/, so I still think it's a *minor* bug in Mesa (currently Mesa assumes that the --enable-compat option was passed to libelf *and* that libelf is installed in /usr
Anyway, I just kicked off a rebuild of mesa-10.1.3 to make sure all is well with it after changing libelf's build.
|
|
|
All times are GMT -5. The time now is 09:40 PM.
|
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.
|
Latest Threads
LQ News
|
|