FireBurn / Overlay

Gentoo Overly
GNU General Public License v3.0
21 stars 6 forks source link

wayland-9999 Header changed between ABIs #22

Closed set135 closed 11 years ago

set135 commented 11 years ago

The problem is that the header file generated in the x86 build is different than the one generated in the amd64, so it dies in the install phase.

This is the diff of the offending headers:

--- work/wayland-9999-amd64/src/wayland-client-protocol.h       2013-07-13 21:37:24.903544466 -0400
+++ work/wayland-9999-x86/src/wayland-client-protocol.h 2013-07-13 21:37:17.892808088 -0400
@@ -124,7 +124,7 @@
         */
        void (*error)(void *data,
                      struct wl_display *wl_display,
-                     void *object_id,
+                     struct wl_object *object_id,
                      uint32_t code,
                      const char *message);
        /**

The seemingly correct line should be 'struct wl_object ' instead of 'void '. How this multi-abi stuff works is a bit of a mystery to me, perhaps you know why the headers were created differently and how to fix that? Or maybe you know of a better hack than what I did, which was to just copy the x86 header over the amd64 header in the build directory, then manually use ebuild to install and qmerge.

If you can tell me what the difference is for what the ebuild does to configure for x86 vs. amd64 I might be of more help. Mabybe even try to fix it upstream.

FireBurn commented 11 years ago

If you compile it amd64 only then both abis it'll work properly. I've already raised a bug upstream about it but it was closed

The issue is I don't build wayland-scanner on anything bar the native abi which is used to build the header. I still think its a bug. Feel free to find it at bugs.freedesktop.org On 14 Jul 2013 03:12, "set135" notifications@github.com wrote:

The problem is that the header file generated in the x86 build is different than the one generated in the amd64, so it dies in the install phase.

This is the diff of the offending headers: --- work/wayland-9999-amd64/src/wayland-client-protocol.h 2013-07-13 21:37:24.903544466 -0400 +++ work/wayland-9999-x86/src/wayland-client-protocol.h 2013-07-13 21:37:17.892808088 -0400 @@ -124,7 +124,7 @@ _/ void (_error)(void data, struct wl_display wl_display,

  • void *object_id,
  • struct wl_object _object_id, uint32t code, const char *message); /*

The seemingly correct line should be 'struct wl_object ' instead of 'void '. How this multi-abi stuff works is a bit of a mystery to me, perhaps you know why the headers were created differently and how to fix that? Or maybe you know of a better hack than what I did, which was to just copy the x86 header over the amd64 header in the build directory, then manually use ebuild to install and qmerge.

If you can tell me what the difference is for what the ebuild does to configure for x86 vs. amd64 I might be of more help. Mabybe even try to fix it upstream.

— Reply to this email directly or view it on GitHubhttps://github.com/FireBurn/Overlay/issues/22 .

FireBurn commented 11 years ago

OK I've found a better solution - now wayland-scanner is built but isn't installed on non-native ABIs

set135 commented 11 years ago

Verified unmerging wayland and remerging wayland-9999 with amd64 and x86 abis together works as expected. Thanks for your work!