You are not logged in.

#1 2013-08-25 06:44:54

adam777
Member
Registered: 2012-05-28
Posts: 161

[Solved] Help Bisecting Mesa

Hello all,
As part of the problems I encountered with mesa 9.2, currently in [testing], I was asked by upstream if I could bisect the code between 9.1.6 and 9.2rc1 (known good/bad revisions).
Having just learned about the whole bisect concept, I'm in need of quite a bit of help.

As far as I understand I will need to clone the mesa repo, mark the 9.16 tag as good, mark the 9.2rc1 tag as bad and start the process of build-test until the problematic commit is found.
The idea is pretty clear, but I need help with the details, mostly the arch-specific bits - how do I build the relevant arch-packages (ati-dri lib32-ati-dri mesa lib32-mesa mesa-libgl lib32-mesa-libgl) from a local mesa repo?
I suppose the build will be based on the PKGBUILD obtained via abs, but can't figure out how to apply it exactly.
If one could give me a push in the right direction, it will be very helpful (possibly even some script to build above packages based on specific revision from a local repo?).

Thanks, Adam.

Last edited by adam777 (2013-09-01 07:20:31)

Offline

#2 2013-08-25 12:36:39

Lone_Wolf
Member
From: Netherlands, Europe
Registered: 2005-10-04
Posts: 11,868

Re: [Solved] Help Bisecting Mesa

There are differences between building mesa from a stable tarball and from a git repo, the most obvious one is that stable uses ./configure while git versions use /.autogen.sh instead.

You should look at the sources in lordheavy's mesa-git repo http://pkgbuild.com/~lcarlier/mesa-git/ … /mesa-git/  and use that as  a base.

Since mesa / mesa-git are split packages, you'll have to use makepkg multiple times to get all packages to build.

i'm not sure about the specific build order, but i think it should go like this :

mesa
mesa-libgl
ati-dri
lib32-mesa
lib32-mesa-libgl
lib32-ati-dri

Check the developer tools, there may be a command to build all parts of a split package.

Last edited by Lone_Wolf (2013-08-25 12:37:33)


Disliking systemd intensely, but not satisfied with alternatives so focusing on taming systemd.


(A works at time B)  && (time C > time B ) ≠  (A works at time C)

Offline

#3 2013-08-25 17:48:30

adam777
Member
Registered: 2012-05-28
Posts: 161

Re: [Solved] Help Bisecting Mesa

Thanks, Lone_Wolf.
I got the general idea, but could not build mesa itself.
I'll dig some more regarding the getting build errors, but the bisecting idea seems clear.

Last edited by adam777 (2013-08-25 18:50:27)

Offline

#4 2013-08-27 10:36:59

adam777
Member
Registered: 2012-05-28
Posts: 161

Re: [Solved] Help Bisecting Mesa

Hello all,
As stated above, the general bisecting idea is clear, but I'm having problem actually building mesa so I re-opened the thread.
Here what I've done:
I downloaded the PKGBUILD and needed packages (clang-svn, llvm-svn etc.) from Laurent Carlier's folder.
I modified the PKGBUILD a bit - comment out unneccesary packages (intel-dri-git, for example).
In order to build a specific commit, I added the following line to the build() section:

cd ${srcdir}/mesa
git checkout 5b2855bfe79bfc3995969f2bf775d89b1bc1808a

makepkg -s was invoked later, but failed pretty soon. A bit of googling and the blame was with bison 3.0.
Since the commit I'm trying to build is from April 11th and the bison 3.0 fix is from July 31st and since I have no idea how to backport the bison 3.0 patches, I downgraded to bison 2.7.1 from the AUR (https://bugs.freedesktop.org/show_bug.cgi?id=67354).
makepkg -s then got over the problematic bison part but failed again, this time with an error related to llvm 3.4 (https://bugs.freedesktop.org/show_bug.cgi?id=64590).
Again, The fix is from May 14th (http://cgit.freedesktop.org/mesa/mesa/c … 773efbc181), so I reverted to LLVM 3.3 and modified PKGBUILD accordingly (llvm instead of llvm-svn etc.).

This is, unfortunately, where I got stuck.
Build fails again, with an error that seems to be related to llvm 3.4, though I'm on 3.3.
Log is here - http://pastebin.com/DwFAVKxC
PKGBUILD is here - http://pastebin.com/PwiZXVGv

Thanks, Adam.

Last edited by adam777 (2013-08-27 10:38:25)

Offline

#5 2013-08-28 10:00:28

Lone_Wolf
Member
From: Netherlands, Europe
Registered: 2005-10-04
Posts: 11,868

Re: [Solved] Help Bisecting Mesa

Ok, guess i should have made clear that in this case the mesa-git from Lordheavy aka Laurent Carlier is intended to be used as a template.

You should change it to reflect the mesa 9.1.6 and 9.2.x packages as closely as possible, this also means your pkg should use the same dependencies as the stable ones.

-  Using git clone in the build section seems an unclean solution, and you should be able to target a specific commit in the soure url.
     something like 'mesa::git+http://anongit.freedesktop.org/git/mesa/mesa.git#commit=<short hash tag number>'  would probably build.
     you'll also need to change the pkver function.

- you should compare the build flags used by autogen.sh with those in the official packages, and make sure you use the same ones as those in the official packages.
   ex : --enable-opencl is not yet used in the arch official packages.


Disliking systemd intensely, but not satisfied with alternatives so focusing on taming systemd.


(A works at time B)  && (time C > time B ) ≠  (A works at time C)

Offline

#6 2013-08-28 19:23:57

adam777
Member
Registered: 2012-05-28
Posts: 161

Re: [Solved] Help Bisecting Mesa

Oh, right, completely forgot about ABS, which strangely enough was my original plan.
I'll have a look on it as well as the other stuff mentioned.
Thanks again, Lone_Wolf

Offline

#7 2013-09-01 07:20:16

adam777
Member
Registered: 2012-05-28
Posts: 161

Re: [Solved] Help Bisecting Mesa

OK, progress.
After taking Lone_wolf advice, I managed to get a hang of the build process and successfully built a few different revisions in order to try and pinpoint the problem.
Bottom line is, the build process itself work, mesa doesn't.
As far as this thread is concerned, I mark it solved. keeping the other thread that deals with the actual problems open.

Offline

Board footer

Powered by FluxBB