You are not logged in.
Pages: 1
Attempting to rebuild glibc with makepkg the process dies owing to the need for kernel headers in /usr/src/linux/include. I have no /usr/src/linux/include but rather a /usr/src/linux-2.4.21/include, which, I suspect, has something to do with the fact that I built my kernel from source during installation. Am I right to conclude that this problem is solved by creating a /usr/src/linux/include and creating a symlink to /usr/src/linux-2.4.21/include or will I be setting myself up for a problem by doing so?
jlowell
Offline
If you compile your own kernel, you should _always_ have a symbolic link /usr/src/linux that points to /usr/src/linux-version-you-are-using.
[john@limbo john]$ ls -l /usr/src/ | grep linux
lrwxrwxrwx 1 root root 17 Oct 2 20:37 linux -> linux-2.6.0-test6
The reason for this, as you are finding out now, is that whenever you compile something that needs the kernel source/headers, it will look to /usr/src/linux.
Don't forget to post your PKGBUILD in your thread when you announce a new package in incoming.
see HERE for details
Offline
my bet would be that yes the version numbering in that directory name would throw off the build process. i was always under the impression that one was supposed to create just /usr/src/linux.
now as for "fixing" it (not that it is really broken) you could relink to /usr/src/ linux but i don't know if that would force you to recompile. another option may be to link /usr/src/linux-2.4.21 to /usr/src/linux. being the lazy type i would try the latter first.
good luck and i am glad that you have located what was causing you troubles.
(oh yeah another option may be looking in configure --help to see if you can just set the path to /usr/src/linux-2.4.21 or you could (ugh) patch the makefile or other source)
AKA uknowme
I am not your friend
Offline
red_over_blue,
From what you've said, I'd conclude that the proper steps for me to take would be these:
mkdir /usr/src/linux
cd /usr/src
ln -s linux-2.4.21 linux
And running ls I should see, among other things, something like this:
linux --> linux-2.4.21
Have I got this right? The ln -s command should show version file first and generic file second, not the other way around, and be executed from the /usr/src directory? As I understand it from the manual, that's the correct order, but before running it I'd like to confirm that.
jlowell
Offline
yes that is correct
AKA uknowme
I am not your friend
Offline
Sarah,
Thanks for the confirmation.
jlowell
Offline
not a problem i am always happy to help (honestly).
i really do hope this helps you finally get glibc compiled to your desired specs. you have been at it for quite sometime and deserve to be rewardeed for your efforts.
one thing you may want to try (i did this when i was first trying to use makeworld for building i586 packages on a non i586 computer) when you next run makeworld is sending the compiling info to a file. the file end out being VERY large sizewise but it gives you all of the output from the compilation procedure which can be much more help than the output of the two logfiles makeworld creates, especially if the build dies ing the compile process and not at the end or beginning of the build before the build{} is executed. if i remember correctly i did it something like this:
makeworld -bc /var/abs/i586pkgs <desireddirectorytobuild> >> compile.log
sorry i forgot to mention this a long time ago but it slipped my mind until today
AKA uknowme
I am not your friend
Offline
Sarah,
I'm afraid we were far too quick to conclude that I'd understood how to create that symbolic link. The command I entered simply linked /usr/src/linux-2.4.21 to /usr/src/linux-2.4.21 in the /usr/src/linux directory; basically, it linked itself, hardly what we want! The ln -s command continues to baffle me. I've never understood the mechanism well enough to get it to do what I'd like and the man page is of no help whatsoever.
Anyway, here's what happened and here's what I'm trying to achieve:
1. I started all this with a /usr/src/linux-2.4.21 directory but no /usr/src/linux directory because I'd built the kernel from source during installation. As we know, to build glibc (and anything else requiring kernel headers) I need a /usr/src/linux directory and a link from it to /usr/src/linux-2.4.21.
2. So I created a /usr/src/linux directory.
3. From the working directory I ran ln -s linux-2.4.21 linux and got output from ls showing no change whatsoever in /usr/src. Past failures with symbolic links caused me to examine /usr/src/linux and there I discovered linux-2.4.21 ---> linux-2.4.21! I removed it, of course.
4. Flummoxed, and, I confess, not a little frustrated, I tried ln -s the other way around and got a similar result in /usr/src/linux-2.4.21. I removed that too.
5. What I want, of course is something that looks like this after listing /usr/src:
.
..
linux --> linux-2.4.21
linux-2.4.21
God knows, I don't know how to produce this result. Can you or anyone else help? I'm lost.
jlowell
Offline
jlowell, don't make the directory.
/usr/src/linux is a file, not a directory. It is a file that points to a directory. The following is all you have to do, assuming that /usr/src/linux does _not_ exist at all.
[john@limbo john]$ su -
Password:
[root@limbo root]# cd /usr/src/
[root@limbo src]# ln -s linux-2.6.0-test6 linux
[root@limbo src]# ls -l linux
lrwxrwxrwx 1 root root 17 Oct 3 22:18 linux -> linux-2.6.0-test6
[root@limbo src]#
Don't forget to post your PKGBUILD in your thread when you announce a new package in incoming.
see HERE for details
Offline
jlowell,
geesh i am really sorry about confirming that my brain must be asleep. it has been a long day indeed. i must have focused on the rest of the commands more than the mkdir part. (not to mention it has been several months since i have built a kernel) next time i will check my sources before charging in and leading you down the path like that. i am very embarassed. :oops:
also about my output to a file suggestion it seems it does not work at the moment. i tried it out when i got home. i will ask judd about it to see if there is someway to do this because it really is helpful in many case to see exactly what went wrong with a build.
AKA uknowme
I am not your friend
Offline
aha i think i've got it. just direct the output to a file outside /var/abs (if that is where your abs is you may not have to direct the output to an exterior file if you still have your abs in /usr) like so:
sudo makeworld -bc /var/abs/custompkgs base >
/home/sarah/compileinfo.txt
if you are successful with directing the output to a file it will appear as though the command did not work as your promt wil move to a new line without your standard prompt. of course this is not the case it is just sending all that you would have seen on your screen to your file. your standard prompt will return when makeworld is done.
AKA uknowme
I am not your friend
Offline
You can also use "tee"
[john@limbo acidrip]$ sudo makeworld -bc /var/abs/custompkgs base 2>&1 | tee -a /home/john/makeworld.log
This will allow you to see the output from the command, as well as have all stdout and stderr (sp?) messages piped to tee which appends it to makepkg.log (the -a means append).
Don't forget the 2>&1 after the command before you pipe it to tee.
Don't forget to post your PKGBUILD in your thread when you announce a new package in incoming.
see HERE for details
Offline
red_over_blue,
Ah yes, red_over_blue to the rescue! God bless you, man, I was really pulling my hair out over this one. I even tried juryrigging something using the third approach to the syntax offered by the ln man page. It crashed and burned, of course.
So the problem here is that I ran mkdir /usr/src/linux? As someone once remarked, "who'd a thunk it". I'm happy to tell you that I've successfully created the link and that glibc is compiling as we speak. Thanks very much for having taken a hand in this matter.
Regards.
jlowell
Offline
Sarah,
Not to worry, all's well that ends well. I appreciate your sincere attempt to be helpful and am grateful for that.
jlowell
Offline
jlowell,
No problem, just glad I could help. As for sarah31, I think with the hour a night sleep she has probably been getting trying to get the monstrosity that is OOo to compile we should just be grateful she even reads the posts in the forums, not to mention taking care of "incoming" too.
Also, I hope you didn't miss the "tee" comment I made in this thread, as it is an under-used tool that is very useful.
Don't forget to post your PKGBUILD in your thread when you announce a new package in incoming.
see HERE for details
Offline
red_over_blue,
When I first installed Arch back in August, I thought I'd try using makeworld to rebuild the base system binaries. Gyroplast introduced me to it at the time so I ran it. Of the sixty or seventy packages I then had installed it rebuilt all but about twelve. More than half of the remainder had had their urls change so there was nothing intrinsically wrong with the build scripts that a little research and editing wouldn't fix. groff, glibc and a couple of others were more recalcitrant though. We now know that groff appears quite ill because of a GNU security problem and that glibc had this kernel header thing, of course. But if I remember correctly, there is no mechanism in makeworld that permits you to exclude certain packages from installation. I mean I'm running Arch with reiserfs and had no need for jfsutils, for example, but it built and installed jfsutils anyway. I know you can exclude packages with pacman. But if you're using the -i option with makeworld aren't you compelled to accept the whole of a package group?
Anyway, next time I do a system rebuild (I've got Arch on three workstations here and am still at work rebuilding the first one as Sarah knows) I'll keep a log file using makeworld and the tee approach. It sounds as though it would be quite helpful should something break.
jlowell
Offline
But if I remember correctly, there is no mechanism in makeworld that permits you to exclude certain packages from installation. I mean I'm running Arch with reiserfs and had no need for jfsutils, for example, but it built and installed jfsutils anyway.
Take a look here for a possible solution to your delema
Don't forget to post your PKGBUILD in your thread when you announce a new package in incoming.
see HERE for details
Offline
Pages: 1