netsurf fixes for GCC-4.4, from netsurf svn.
PATCH 1/1 netsurf fixes for GCC-4.4, from netsurf svn.
Netsurf appears to be statically linked with these libraries, so I bumped its PR too.
---
recipes/netsurf/files/hubbub-uninitialised.patch | 35 ++++++++ .../netsurf/files/libnsgif-strict-aliasing.patch | 82 ++++++++++++++++++++ recipes/netsurf/hubbub_0.0.1.bb | 5 +- recipes/netsurf/libnsgif_0.0.1.bb | 5 +- recipes/netsurf/netsurf_2.1.bb | 2 + 5 files changed, 127 insertions(+), 2 deletions(-)
create mode 100644 recipes/netsurf/files/hubbub-uninitialised.patch create mode 100644 recipes/netsurf/files/libnsgif-strict-aliasing.patch
recipes/netsurf/files/hubbub-uninitialised.patch new file +33 -0
@@ -0,0 +1,35 @@ +http://source.netsurf-browser.org/?view=rev&revision=7398 +Initialise variables to stop GCC 4.4 complaining (credit: Jeroen Habraken) + +--- hubbub/src/tokeniser/tokeniser.c 2009/04/06 15:22:16 7052 ++++ hubbub/src/tokeniser/tokeniser.c 2009/05/05 17:18:41 7398 +@@ -787,7 +787,7 @@ + + 1); + } else { + parserutils_error error; +- const uint8_t *cptr; ++ const uint8_t *cptr = NULL; + error = parserutils_inputstream_peek( + tokeniser->input, + tokeniser->context.pending, +@@ -1590,8 +1590,8 @@ + tokeniser->context.match_entity.length + + 1; + } else { +- size_t len; +- const uint8_t *cptr; ++ size_t len = 0; ++ const uint8_t *cptr = NULL; + parserutils_error error; + + error = parserutils_inputstream_peek( +@@ -3137,7 +3137,7 @@ + { + hubbub_token token; + size_t len; +- const uint8_t *cptr; ++ const uint8_t *cptr = NULL; + parserutils_error error; + + /* Calling this with nothing to output is a probable bug */ +
recipes/netsurf/files/libnsgif-strict-aliasing.patch new file +78 -0
78 lines not on this page · raw message
recipes/netsurf/hubbub_0.0.1.bb +0 -0
@@ -5,7 +5,10 @@ PRIORITY = "optional"
LICENSE = "MIT"
DEPENDS = "libparserutils"
-SRC_URI = "http://www.netsurf-browser.org/projects/releases/hubbub-${PV}-src.tar.gz" +SRC_URI = "http://www.netsurf-browser.org/projects/releases/hubbub-${PV}-src.tar.gz \
+ file://hubbub-uninitialised.patch;patch=1"
+
+PR = "r1"
inherit pkgconfig
recipes/netsurf/libnsgif_0.0.1.bb +0 -0
@@ -4,7 +4,10 @@ SECTION = "libs"
PRIORITY = "optional"
LICENSE = "MIT"
-SRC_URI = "http://www.netsurf-browser.org/projects/releases/libnsgif-${PV}-src.tar.gz" +SRC_URI = "http://www.netsurf-browser.org/projects/releases/libnsgif-${PV}-src.tar.gz \
+ file://libnsgif-strict-aliasing.patch;patch=1"
+
+PR = "r1"
inherit pkgconfig
recipes/netsurf/netsurf_2.1.bb +0 -0
@@ -11,6 +11,8 @@ SRC_URI = "http://www.netsurf-browser.org/downloads/releases/netsurf-${PV}-src.t
file://netsurf.desktop \ file://Makefile.config"
+PR = "r1"
+
# Workaround for 2.1 tarball (unpacks into netsurf/, not netsurf-2.1/ ) S = "${WORKDIR}/netsurf"
Signature · 1 line
1.6.0.3
Quoted 5 lines · Graham Gower
Netsurf appears to be statically linked with these libraries, so I bumped its PR too.
Signed-off-by Graham Gower <[email protected]>---
looks ok.
Quoted 188 lines
recipes/netsurf/files/hubbub-uninitialised.patch | 35 ++++++++ .../netsurf/files/libnsgif-strict-aliasing.patch | 82 ++++++++++++++++++++ recipes/netsurf/hubbub_0.0.1.bb | 5 +- recipes/netsurf/libnsgif_0.0.1.bb | 5 +- recipes/netsurf/netsurf_2.1.bb | 2 + 5 files changed, 127 insertions(+), 2 deletions(-)create mode 100644
recipes/netsurf/files/hubbub-uninitialised.patchcreate mode 100644recipes/netsurf/files/libnsgif-strict-aliasing.patchrecipes/netsurf/files/hubbub-uninitialised.patch new file +33
-0@@ -0,0 +1,35 @@ +http://source.netsurf-browser.org/?view=rev&revision=7398 +Initialise variables to stop GCC 4.4 complaining (credit: Jeroen Habraken) + +--- hubbub/src/tokeniser/tokeniser.c 2009/04/06 15:22:16 7052 ++++ hubbub/src/tokeniser/tokeniser.c 2009/05/05 17:18:41 7398 +@@ -787,7 +787,7 @@ + + 1); + } else { + parserutils_error error; +- const uint8_t *cptr; ++ const uint8_t *cptr = NULL; + error = parserutils_inputstream_peek( + tokeniser->input, + tokeniser->context.pending, +@@ -1590,8 +1590,8 @@ + tokeniser->context.match_entity.length + + 1; + } else { +- size_t len; +- const uint8_t *cptr; ++ size_t len = 0; ++ const uint8_t *cptr = NULL; + parserutils_error error; + + error = parserutils_inputstream_peek( +@@ -3137,7 +3137,7 @@ + { + hubbub_token token; + size_t len; +- const uint8_t *cptr; ++ const uint8_t *cptr = NULL; + parserutils_error error; + + /* Calling this with nothing to output is a probable bug */ +recipes/netsurf/files/libnsgif-strict-aliasing.patch new file +24
-0@@ -0,0 +1,82 @@ +http://source.netsurf-browser.org/?view=rev&revision=9027 +Stop utterly insane palette entry population. +Palette entries are always ABGR, regardless of platform endianness. +This change probably breaks big-endian platforms which, under the old approach, +had palette entries of the form RGBA (assuming I understood the code correctly). + +http://source.netsurf-browser.org/?view=rev&revision=9138 +Fix palette entry population some more. Hopefully, it's completely endian +agnostic now and still builds with GCC 4.4 + +--- libnsgif/src/libnsgif.c 2009/03/29 01:43:27 6984 ++++ libnsgif/src/libnsgif.c 2009/08/09 22:24:14 9138 +@@ -319,19 +319,34 @@ + return GIF_INSUFFICIENT_DATA; + } + for (index = 0; index < gif->colour_table_size; index++) { +- char colour[] = {0, 0, 0, (char)0xff}; +- colour[0] = gif_data[0]; +- colour[1] = gif_data[1]; +- colour[2] = gif_data[2]; +- gif->global_colour_table[index] = *((int *) (void *) colour); ++ /* Gif colour map contents are r,g,b. ++ * ++ * We want to pack them bytewise into the ++ * colourtable, such that the red component
++ * is in byte 0 and the alpha component is in
++ * byte 3.
++ */
++ unsigned char *entry = (unsigned char *) &gif->
++ global_colour_table[index];
++
++ entry[0] = gif_data[0]; /* r */
++ entry[1] = gif_data[1]; /* g */
++ entry[2] = gif_data[2]; /* b */
++ entry[3] =0xff; /* a */
++recipes/netsurf/files/libnsgif-strict-aliasing.patch new file +29
-0+ gif_data += 3; + } + gif->buffer_position = (gif_data - gif->gif_data); + } else { + /* Create a default colour table with the first two colours as black and white + */ +- gif->global_colour_table[0] = 0xff000000; +- gif->global_colour_table[1] = 0xffffffff; ++ unsigned int *entry = gif->global_colour_table; ++ ++ entry[0] = 0x00000000; ++ /* Force Alpha channel to opaque */ ++ ((unsigned char *) entry)[3] = 0xff; ++ ++ entry[1] = 0xffffffff; + } + } + +@@ -844,11 +859,21 @@ + colour_table = gif->local_colour_table; + if (!clear_image) { + for (index = 0; index < colour_table_size; index++) { +- char colour[] = {0, 0, 0, (char)0xff}; +- colour[0] = gif_data[0]; +- colour[1] = gif_data[1]; +- colour[2] = gif_data[2]; +- colour_table[index] = *((int *) (void *) colour); ++ /* Gif colour map contents are r,g,b. ++ * ++ * We want to pack them bytewise into the ++ * colourtable, such that the red component
++ * is in byte 0 and the alpha component is in
++ * byte 3.
++ */
++ unsigned char *entry = ++ (unsigned char *)
&colour_table[index];
++
++ entry[0] = gif_data[0]; /* r */
++ entry[1] = gif_data[1]; /* g */
++ entry[2] = gif_data[2]; /* b */
++ entry[3] =0xff; /* a */
++recipes/netsurf/files/libnsgif-strict-aliasing.patch new file +4
-0+ gif_data += 3; + } + } else { +recipes/netsurf/hubbub_0.0.1.bb +0
-0@@ -5,7 +5,10 @@ PRIORITY = "optional"LICENSE = "MIT"
DEPENDS = "libparserutils"recipes/netsurf/hubbub_0.0.1.bb +4
-1-SRC_URI = "http://www.netsurf-browser.org/projects/releases/hubbub-${PV}-src.tar.gz" +SRC_URI = "http://www.netsurf-browser.org/projects/releases/hubbub-${PV}-src.tar.gz \ + file://hubbub-uninitialised.patch;patch=1" + +PR = "r1"inherit pkgconfig
recipes/netsurf/libnsgif_0.0.1.bb +0
-0@@ -4,7 +4,10 @@ SECTION = "libs"PRIORITY = "optional"
LICENSE = "MIT"recipes/netsurf/libnsgif_0.0.1.bb +4
-1-SRC_URI = "http://www.netsurf-browser.org/projects/releases/libnsgif-${PV}-src.tar.gz" +SRC_URI = "http://www.netsurf-browser.org/projects/releases/libnsgif-${PV}-src.tar.gz \ + file://libnsgif-strict-aliasing.patch;patch=1" + +PR = "r1"inherit pkgconfig
recipes/netsurf/netsurf_2.1.bb +2
-0@@ -11,6 +11,8 @@ SRC_URI = "http://www.netsurf-browser.org/downloads/releases/netsurf-${PV}-src.t file://netsurf.desktop \ file://Makefile.config" +PR = "r1" + # Workaround for 2.1 tarball (unpacks into netsurf/, not netsurf-2.1/ )S = "${WORKDIR}/netsurf"
Signature · 7 lines
1.6.0.3 _______________________________________________ Openembedded-devel mailing list [email protected] http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-devel