Your message dated Wed, 3 Jun 2015 10:53:17 +0100
with message-id 
<CAHDciUfS=fbaonvji0nu9q6scsa_guu93sqf-t3pyewebet...@mail.gmail.com>
and subject line Re: Bug#787509: gdk-pixbuf: insufficient alignment of pixdata 
causes FTBFS on arm64
has caused the Debian Bug report #787509,
regarding gdk-pixbuf: insufficient alignment of pixdata causes FTBFS on arm64
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact [email protected]
immediately.)


-- 
787509: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=787509
Debian Bug Tracking System
Contact [email protected] with problems
--- Begin Message ---
Source: gdk-pixbuf
Version: 2.31.4-2
Tags: patch

netsurf failed to build on arm64:

/«BUILDDIR»/netsurf-3.2+dfsg/netsurf/gtk/window.c:1057:(.text+0x2cc):
relocation truncated to fit: R_AARCH64_LDST64_ABS_LO12_NC against
symbol `menu_cursor_pixdata' defined in .rodata section in
build-Linux-gtk/build-Linux-gtk_menu_cursor.o
collect2: error: ld returned 1 exit status

See https://buildd.debian.org/status/package.php?p=netsurf&suite=sid

The root of the problem seems to be here:

https://sources.debian.net/src/gdk-pixbuf/2.31.4-2/gdk-pixbuf/gdk-pixdata.c/

In line 768 you need alignment 8 instead of 4.
(I don't know about line 764. You could change that as well, perhaps.)

However, is there a neater, more portable way of making this stuff work?
diff -ru gdk-pixbuf-2.31.4.orig/gdk-pixbuf/gdk-pixdata.c gdk-pixbuf-2.31.4/gdk-pixbuf/gdk-pixdata.c
--- gdk-pixbuf-2.31.4.orig/gdk-pixbuf/gdk-pixdata.c	2014-10-23 01:53:51.000000000 +0000
+++ gdk-pixbuf-2.31.4/gdk-pixbuf/gdk-pixdata.c	2015-06-02 07:59:21.910000000 +0000
@@ -765,7 +765,7 @@
       APPEND (gstring, "#endif\n");
 
       APPEND (gstring, "#ifdef __GNUC__\n");
-      APPEND (gstring, "%s%s%s %s[] __attribute__ ((__aligned__ (4))) = \n",
+      APPEND (gstring, "%s%s%s %s[] __attribute__ ((__aligned__ (8))) = \n",
 	      cdata.static_prefix, cdata.const_prefix,
 	      cdata.dump_gtypes ? "guint8" : "unsigned char",
 	      name);

--- End Message ---
--- Begin Message ---
Emilio:

> Looks like the netsurf problem was in netsurf itself:
>
> https://packages.qa.debian.org/n/netsurf/news/20150602T232232Z.html
>
> Are you sure this is still a problem in gdk-pixbuf?

Yes, it's fixed in netsurf. Closing this bug. Thanks, and sorry for
the distraction.

The alignment issue was with the pointer to menu_cursor_pixdata, as it
was previously declared ("extern const guint8 *menu_cursor_pixdata;"),
rather than the contents of menu_cursor_pixdata, now correctly
declared as an array ("extern const guint8 menu_cursor_pixdata[];"). I
was crazily thinking that the function gdk_pixbuf_new_from_inline was
itself "inline"!

Edmund

--- End Message ---

Reply via email to