* [Buildroot] [buildroot] libdrm tries to compile before cairo @ 2011-03-18 10:40 Barry Kauler 2011-03-18 11:38 ` bruce bushby ` (2 more replies) 0 siblings, 3 replies; 9+ messages in thread From: Barry Kauler @ 2011-03-18 10:40 UTC (permalink / raw) To: buildroot Hi, I am a first-time user of Buildroot. It has been chugging along nicely, but libdrm has failed to compile. It reports that 'cairo.h' is missing. Which it is, cairo has not yet been compiled in the target. So, using my own reasoning, I added "cairo" onto LIBDRM_DEPENDENCIES variable in file 'libdrm.mk'. I also deleted output/build/libdrm-2.4.19. However, running 'make' again, it tries to compile libdrm again, and fails. How do I make it compile cairo (and its deps) before libdrm? Regards, Barry Kauler ^ permalink raw reply [flat|nested] 9+ messages in thread
* [Buildroot] [buildroot] libdrm tries to compile before cairo 2011-03-18 10:40 [Buildroot] [buildroot] libdrm tries to compile before cairo Barry Kauler @ 2011-03-18 11:38 ` bruce bushby 2011-03-18 12:37 ` Barry Kauler 2011-03-19 7:22 ` Thomas Petazzoni 2011-07-25 12:19 ` [Buildroot] " Peter Korsgaard 2 siblings, 1 reply; 9+ messages in thread From: bruce bushby @ 2011-03-18 11:38 UTC (permalink / raw) To: buildroot Hi Barry I'm also new...so can't really offer anything beyond my recent experience. Could you past your "LIBDRM_DEPENDENCIES" line? I had some troubles adding "zeromq" until I added: ZEROMQ_DEPENDENCIES = e2fsprogs host-pkg-config host-e2fsprogs I suspect I don't need the "host-e2fsprogs" ..... it was only when I added "e2fsprogs" that everything worked. If you "de-select" libdrm and allow the build to finish and then run "make libdrm" ... does it then compile? My problem with zeromq complained that it couldn't find "uuid-dev" ....even though I had selected "uuid"....turned out "e2fsprogs" provides "uuid-dev"...just wondering if something similar applies to "cairo.h" On Fri, Mar 18, 2011 at 10:40 AM, Barry Kauler <bkauler@gmail.com> wrote: > Hi, I am a first-time user of Buildroot. It has been chugging along > nicely, but libdrm has failed to compile. > > It reports that 'cairo.h' is missing. Which it is, cairo has not yet > been compiled in the target. > > So, using my own reasoning, I added "cairo" onto LIBDRM_DEPENDENCIES > variable in file 'libdrm.mk'. I also deleted > output/build/libdrm-2.4.19. > > However, running 'make' again, it tries to compile libdrm again, and fails. > > How do I make it compile cairo (and its deps) before libdrm? > > Regards, > Barry Kauler > _______________________________________________ > buildroot mailing list > buildroot at busybox.net > http://lists.busybox.net/mailman/listinfo/buildroot > -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.busybox.net/pipermail/buildroot/attachments/20110318/931a133b/attachment.html> ^ permalink raw reply [flat|nested] 9+ messages in thread
* [Buildroot] [buildroot] libdrm tries to compile before cairo 2011-03-18 11:38 ` bruce bushby @ 2011-03-18 12:37 ` Barry Kauler 0 siblings, 0 replies; 9+ messages in thread From: Barry Kauler @ 2011-03-18 12:37 UTC (permalink / raw) To: buildroot On 3/18/11, bruce bushby <bruce.bushby@gmail.com> wrote: > Hi Barry > > I'm also new...so can't really offer anything beyond my recent experience. > Could you past your "LIBDRM_DEPENDENCIES" line? > > I had some troubles adding "zeromq" until I added: > ZEROMQ_DEPENDENCIES = e2fsprogs host-pkg-config host-e2fsprogs > > I suspect I don't need the "host-e2fsprogs" ..... it was only when I added > "e2fsprogs" that everything worked. > > If you "de-select" libdrm and allow the build to finish and then run "make > libdrm" ... does it then compile? > > My problem with zeromq complained that it couldn't find "uuid-dev" ....even > though I had selected "uuid"....turned out "e2fsprogs" provides > "uuid-dev"...just > wondering if something similar applies to "cairo.h" > Bruce, Thanks for the response. I have not really understood how Buildroot works -- I have used T2-project many times, and that cross-compiles in a true virtual environment -- but not Buildroot. In Buildroot, libdrm does check if cairo is there and thinks it is, but it isn't -- Buildroot actually checks my host environment and see cairo is installed. That is a very confusing situation. I can't de-select libdrm as it is a dependency of something else. I will have to roll the package choices right back until it can be deselected. Regards, Barry Kauler > > > > > > > > > > > > On Fri, Mar 18, 2011 at 10:40 AM, Barry Kauler <bkauler@gmail.com> wrote: > >> Hi, I am a first-time user of Buildroot. It has been chugging along >> nicely, but libdrm has failed to compile. >> >> It reports that 'cairo.h' is missing. Which it is, cairo has not yet >> been compiled in the target. >> >> So, using my own reasoning, I added "cairo" onto LIBDRM_DEPENDENCIES >> variable in file 'libdrm.mk'. I also deleted >> output/build/libdrm-2.4.19. >> >> However, running 'make' again, it tries to compile libdrm again, and >> fails. >> >> How do I make it compile cairo (and its deps) before libdrm? >> >> Regards, >> Barry Kauler >> _______________________________________________ >> buildroot mailing list >> buildroot at busybox.net >> http://lists.busybox.net/mailman/listinfo/buildroot >> > ^ permalink raw reply [flat|nested] 9+ messages in thread
* [Buildroot] [buildroot] libdrm tries to compile before cairo 2011-03-18 10:40 [Buildroot] [buildroot] libdrm tries to compile before cairo Barry Kauler 2011-03-18 11:38 ` bruce bushby @ 2011-03-19 7:22 ` Thomas Petazzoni 2011-03-19 9:30 ` Barry Kauler 2011-07-25 12:19 ` [Buildroot] " Peter Korsgaard 2 siblings, 1 reply; 9+ messages in thread From: Thomas Petazzoni @ 2011-03-19 7:22 UTC (permalink / raw) To: buildroot Hello Barry, On Fri, 18 Mar 2011 18:40:17 +0800 Barry Kauler <bkauler@gmail.com> wrote: > Hi, I am a first-time user of Buildroot. It has been chugging along > nicely, but libdrm has failed to compile. > > It reports that 'cairo.h' is missing. Which it is, cairo has not yet > been compiled in the target. > > So, using my own reasoning, I added "cairo" onto LIBDRM_DEPENDENCIES > variable in file 'libdrm.mk'. I also deleted > output/build/libdrm-2.4.19. > > However, running 'make' again, it tries to compile libdrm again, and > fails. > > How do I make it compile cairo (and its deps) before libdrm? Adding "cairo" to LIBDRM_DEPENDENCIES is enough to get it compiled before libdrm. Something else is wrong in your setup, because that's really enough. However, Cairo is not required by libdrm. It seems that the problem is that since you have Cairo installed on your host, libdrm ./configure script thinks that Cairo is available. Such "information leakage" from the host environment to the target environment is common and is one of the major challenge an embedded Linux build system such as Buildroot faces. However, as libdrm uses pkg-config to detect the presence or absence of cairo, it sounds strange to me that it detects the host version. Could you please pastebin somewhere the output of the output/build/libdrm-2.4.9/config.log case in the case of a failing compilation ? (I couldn't reproduce here in my test environment, since I don't have Cairo development files installed on the host) Thanks, Thomas -- Thomas Petazzoni, Free Electrons Kernel, drivers, real-time and embedded Linux development, consulting, training and support. http://free-electrons.com ^ permalink raw reply [flat|nested] 9+ messages in thread
* [Buildroot] [buildroot] libdrm tries to compile before cairo 2011-03-19 7:22 ` Thomas Petazzoni @ 2011-03-19 9:30 ` Barry Kauler 2011-03-19 9:58 ` Thomas Petazzoni 0 siblings, 1 reply; 9+ messages in thread From: Barry Kauler @ 2011-03-19 9:30 UTC (permalink / raw) To: buildroot On 3/19/11, Thomas Petazzoni <thomas.petazzoni@free-electrons.com> wrote: > Hello Barry, > > On Fri, 18 Mar 2011 18:40:17 +0800 > Barry Kauler <bkauler@gmail.com> wrote: > >> Hi, I am a first-time user of Buildroot. It has been chugging along >> nicely, but libdrm has failed to compile. >> >> It reports that 'cairo.h' is missing. Which it is, cairo has not yet >> been compiled in the target. >> >> So, using my own reasoning, I added "cairo" onto LIBDRM_DEPENDENCIES >> variable in file 'libdrm.mk'. I also deleted >> output/build/libdrm-2.4.19. >> >> However, running 'make' again, it tries to compile libdrm again, and >> fails. >> >> How do I make it compile cairo (and its deps) before libdrm? > > Adding "cairo" to LIBDRM_DEPENDENCIES is enough to get it compiled > before libdrm. Something else is wrong in your setup, because that's > really enough. > > However, Cairo is not required by libdrm. It seems that the problem is > that since you have Cairo installed on your host, libdrm ./configure > script thinks that Cairo is available. Such "information leakage" from > the host environment to the target environment is common and is one of > the major challenge an embedded Linux build system such as Buildroot > faces. > > However, as libdrm uses pkg-config to detect the presence or absence of > cairo, it sounds strange to me that it detects the host version. Could > you please pastebin somewhere the output of the > output/build/libdrm-2.4.9/config.log case in the case of a failing > compilation ? > > (I couldn't reproduce here in my test environment, since I don't have > Cairo development files installed on the host) > > Thanks, Thomas, Thanks for your reply. I don't have that build anymore. What I did to work around the problem was create a .config file with cairo and without libdrm. After that had completed, I then substituted another .config with extra packages, including libdrm, and it worked. Yes, I encountered this "information leakage" from the host several times. I am using Puppy Linux, Wary edition 5.1.2, and some significant differences from Ubuntu/Debian cause trouble for Buildroot. For example, I got as far as compiling Xorg, but as Puppy has Xorg in /usr/X11R7, not /usr. this caused trouble as Buildroot. Next time that I run Buildroot, I might do it from a different host, such as Ubuntu. I could give a long list of problems that I encountered along the way -- all solvable. For example: udev 114 This is very old, and I don't think that this works properly with recent kernels. In Puppy Linux we now use 151, which is intended for the 2.6.27 kernel or later. libdrm complained that libudev.so (and libudev.h) is missing, and it was, the udev build did not create it. As I am unfamiliar with Buildroot, I chrooted into a rootfs that I had already created with Buildroot and compiled udev 151 (and manually copied the files to staging and target), and that satisfied libdrm. My udev config: ./configure --prefix=/usr --sysconfdir=/etc --sbindir=/sbin --libdir=/usr/lib --with-rootlibdir=/lib --libexecdir=/lib/udev --build=i486-pc-linux-gnu --disable-extras --disable-introspection xorg-server 1.7.5 This is an example of information leakage from host. It complained that xtrans is version 1.0.4, but 1.2.2 is required. However, Buildroot has xtrans 1.2.5, it is my host system that has 1.0.4. I "solved" this by replacing /usr/X11R7/lib/pkgconfig/xtrans.pc in my host with the xtrans.pc from Buildroot. cairo it couldn't find the pixman header files. It looks in /usr/include, but pixman has the header files in /usr/include/pixman-1/. Workaround is to copy the header files from /usr/lib/pixman-1/ to /usr/lib/ (in output/target). xclipboard Information leakage from host again. Complains missing -lXaw8, which is in my host, not in Buildroot. I put a symlink in output/target, libXaw8.so to libXaw7.so, and that workaround fixed it. Native compile Yes, I was able to build a rootfs that I can chroot into and compile packages, however, Buildroot left out /usr/lib/crt1.0, crti.o, crtn.o, and libc.so. I manually copied these across from output/staging, and compiling then worked. Ha ha, that's enough for now :) Could I ask one question. I haven't come across the answer to this yet. My build is "i586-unknown-linux-uclibc", for example /usr/libexec/gcc/i586-unknown-linux-uclibc. How can I change that to "i586-pc-linux-uclibc"? Regards, Barry Kauler ^ permalink raw reply [flat|nested] 9+ messages in thread
* [Buildroot] [buildroot] libdrm tries to compile before cairo 2011-03-19 9:30 ` Barry Kauler @ 2011-03-19 9:58 ` Thomas Petazzoni [not found] ` <AANLkTi=bFZ5MepDorK_6i1soraZGqw7B2T25HRZcH6D-@mail.gmail.com> 0 siblings, 1 reply; 9+ messages in thread From: Thomas Petazzoni @ 2011-03-19 9:58 UTC (permalink / raw) To: buildroot Hello, On Sat, 19 Mar 2011 17:30:35 +0800 Barry Kauler <bkauler@gmail.com> wrote: > Thanks for your reply. I don't have that build anymore. Could you reproduce it ? Without this, we will not be able to fix the problem. > What I did to > work around the problem was create a .config file with cairo and > without libdrm. After that had completed, I then substituted another > .config with extra packages, including libdrm, and it worked. This is an ugly way of workarounding the problem. The whole purpose of Buildroot is to provide a *automated* and *reproducible* way of building an embedded Linux system. So, if you need to do several builds and need to adjust the configuration between builds, something is really wrong and needs to be fixed. To be honest, I'm quite impressed by the uglyness of the workarounds people are ready to accept. > Yes, I encountered this "information leakage" from the host several > times. I am using Puppy Linux, Wary edition 5.1.2, and some > significant differences from Ubuntu/Debian cause trouble for > Buildroot. For example, I got as far as compiling Xorg, but as Puppy > has Xorg in /usr/X11R7, not /usr. this caused trouble as Buildroot. Which troubles ? > udev 114 > This is very old, and I don't think that this works properly with > recent kernels. In Puppy Linux we now use 151, which is intended for > the 2.6.27 kernel or later. Yes, our udev is very old. We have patches to bump udev, but they haven't been merged yet. I hope we can get them merged for the next Buildroot release, but recent udev versions were causing problems with uClibc. > libdrm > complained that libudev.so (and libudev.h) is missing, and it was, the > udev build did not create it. As I am unfamiliar with Buildroot, I > chrooted into a rootfs that I had already created with Buildroot and > compiled udev 151 (and manually copied the files to staging and > target), and that satisfied libdrm. My udev config: > > ./configure --prefix=/usr --sysconfdir=/etc --sbindir=/sbin > --libdir=/usr/lib --with-rootlibdir=/lib --libexecdir=/lib/udev > --build=i486-pc-linux-gnu --disable-extras --disable-introspection libdrm can use libudev, but it is not mandatory, just like cairo. I suspect that libdrm also discovered that libudev was installed on the host, which led it thinking that it was available on the target as well. > xorg-server 1.7.5 > This is an example of information leakage from host. It complained > that xtrans is version 1.0.4, but 1.2.2 is required. However, > Buildroot has xtrans 1.2.5, it is my host system that has 1.0.4. > I "solved" this by replacing /usr/X11R7/lib/pkgconfig/xtrans.pc in my > host with the xtrans.pc from Buildroot. Ugly. Really. > cairo > it couldn't find the pixman header files. It looks in /usr/include, > but pixman has the header files in /usr/include/pixman-1/. Workaround > is to copy the header files from /usr/lib/pixman-1/ to /usr/lib/ (in > output/target). Similar. With Buildroot, if you need to do anything manually, it defeats the whole purpose of having an *automated* and *reproducible* build. So *please* report bugs when you have problems. > xclipboard > Information leakage from host again. Complains missing -lXaw8, which > is in my host, not in Buildroot. I put a symlink in output/target, > libXaw8.so to libXaw7.so, and that workaround fixed it. Same thing. > Native compile > Yes, I was able to build a rootfs that I can chroot into and compile > packages, however, Buildroot left out /usr/lib/crt1.0, crti.o, crtn.o, > and libc.so. I manually copied these across from output/staging, and > compiling then worked. Yes, I think native compilation is broken in 2011.02, and I haven't had the time to dig into it. Buildroot is designed for *cross-compilation*, so the availability of a native toolchain in the target is not our top priority. But we would happily accept patches to improve the situation. > Could I ask one question. I haven't come across the answer to this > yet. My build is "i586-unknown-linux-uclibc", for example > /usr/libexec/gcc/i586-unknown-linux-uclibc. > How can I change that to "i586-pc-linux-uclibc"? You can change the value of REAL_GNU_TARGET_NAME in package/Makefile.in, and it should probably work. But again, please report bugs when you have issues, and don't workaround them in ugly ways. If you face issues, others are probably facing similar issues. Regards, Thomas -- Thomas Petazzoni, Free Electrons Kernel, drivers, real-time and embedded Linux development, consulting, training and support. http://free-electrons.com ^ permalink raw reply [flat|nested] 9+ messages in thread
[parent not found: <AANLkTi=bFZ5MepDorK_6i1soraZGqw7B2T25HRZcH6D-@mail.gmail.com>]
* [Buildroot] [buildroot] libdrm tries to compile before cairo [not found] ` <AANLkTi=bFZ5MepDorK_6i1soraZGqw7B2T25HRZcH6D-@mail.gmail.com> @ 2011-03-19 11:29 ` Barry Kauler 2011-03-19 12:04 ` bruce bushby 0 siblings, 1 reply; 9+ messages in thread From: Barry Kauler @ 2011-03-19 11:29 UTC (permalink / raw) To: buildroot On 3/19/11, Thomas Petazzoni <thomas.petazzoni@free-electrons.com> wrote: > Ugly. Really. Er, yes, of course I know that. I did those quick hacks as I wanted to get as far as compiling X.org. In no way do I imply that those ugly hacks are what I will do permanently. If I keep using Buildroot, then I will submit bug reports and solve the problems. As I learn more about Buildroot, I will also be able to solve some of the problems properly myself. As already stated, I will in future be using a more Buildroot-friendly Linux host. Regards, Barry Kauler ^ permalink raw reply [flat|nested] 9+ messages in thread
* [Buildroot] [buildroot] libdrm tries to compile before cairo 2011-03-19 11:29 ` Barry Kauler @ 2011-03-19 12:04 ` bruce bushby 0 siblings, 0 replies; 9+ messages in thread From: bruce bushby @ 2011-03-19 12:04 UTC (permalink / raw) To: buildroot "...Yes, our udev is very old. We have patches to bump udev, but they haven't been merged yet" ahh...cheers Thomas!! That probably explains an error I'm getting when I boot 2.6.38 kernel: INIT: version 2.88 booting Populating /dev using udev: udevd (898): /proc/898/oom_adj is deprecated, please use /proc/898/oom_score_adj instead. Any ideas when a newer version would be available via the "daily snapshot"? I would like to help more but not a lot I can do beyond testing :( Barry: Try moving your build platform to a "virtual guest", it makes life a lot easier running "main stream flavors" without having to contaminate your "base machine" Bruce On Sat, Mar 19, 2011 at 11:29 AM, Barry Kauler <bkauler@gmail.com> wrote: > On 3/19/11, Thomas Petazzoni <thomas.petazzoni@free-electrons.com> wrote: > > > Ugly. Really. > > Er, yes, of course I know that. I did those quick hacks as I wanted to > get as far as compiling X.org. > > In no way do I imply that those ugly hacks are what I will do > permanently. If I keep using Buildroot, then I will submit bug reports > and solve the problems. As I learn more about Buildroot, I will also > be able to solve some of the problems properly myself. > > As already stated, I will in future be using a more Buildroot-friendly > Linux host. > > Regards, > Barry Kauler > _______________________________________________ > buildroot mailing list > buildroot at busybox.net > http://lists.busybox.net/mailman/listinfo/buildroot > -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.busybox.net/pipermail/buildroot/attachments/20110319/fdb7d9c1/attachment.html> ^ permalink raw reply [flat|nested] 9+ messages in thread
* [Buildroot] libdrm tries to compile before cairo 2011-03-18 10:40 [Buildroot] [buildroot] libdrm tries to compile before cairo Barry Kauler 2011-03-18 11:38 ` bruce bushby 2011-03-19 7:22 ` Thomas Petazzoni @ 2011-07-25 12:19 ` Peter Korsgaard 2 siblings, 0 replies; 9+ messages in thread From: Peter Korsgaard @ 2011-07-25 12:19 UTC (permalink / raw) To: buildroot >>>>> "Barry" == Barry Kauler <bkauler@gmail.com> writes: Hi, Sorry, I know this is an old mail, but here goes anyway. Barry> Hi, I am a first-time user of Buildroot. It has been chugging along Barry> nicely, but libdrm has failed to compile. Barry> It reports that 'cairo.h' is missing. Which it is, cairo has not yet Barry> been compiled in the target. I think the problem is caused by a missing host-pkg-config dependency, so libdrm ends up using your host pkg-config (and presumably cairo.pc). I've fixed it in git, care to retest? -- Bye, Peter Korsgaard ^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2011-07-25 12:19 UTC | newest] Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2011-03-18 10:40 [Buildroot] [buildroot] libdrm tries to compile before cairo Barry Kauler 2011-03-18 11:38 ` bruce bushby 2011-03-18 12:37 ` Barry Kauler 2011-03-19 7:22 ` Thomas Petazzoni 2011-03-19 9:30 ` Barry Kauler 2011-03-19 9:58 ` Thomas Petazzoni [not found] ` <AANLkTi=bFZ5MepDorK_6i1soraZGqw7B2T25HRZcH6D-@mail.gmail.com> 2011-03-19 11:29 ` Barry Kauler 2011-03-19 12:04 ` bruce bushby 2011-07-25 12:19 ` [Buildroot] " Peter Korsgaard
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.