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);

Reply via email to