office-gobmx/external/skia/fix-gcc-x86.patch.1
Thorsten Behrens 4475bcd83a skia: make gcc not crash again for x86 builds
Papered over already with a bandaid in
c13f75de52, happened again after skia
upgrade; let's now fix th eICE on CentOS7 devtoolset-7's gcc proper.

It appears that this error

  workdir/UnpackedTarball/skia/third_party/skcms/src/Transform_inl.h:696:13: note: The ABI for passing parameters with 16-byte alignment has changed in GCC 4.6
   static void clut(const skcms_A2B* a2b, F* r, F* g, F* b, F a) {
               ^~~~
  workdir/UnpackedTarball/skia/third_party/skcms/skcms.cpp: At global scope:
  workdir/UnpackedTarball/skia/third_party/skcms/skcms.cpp:2645:1: internal compiler error: Segmentation fault

is caused by the clut() function still inlined for gcc. Patch makes this
go away by leaving clut() with external visibility, thus getting gcc to
outline it. Original Google hack with __attribute__((noinline)) alone
appears insufficient.

Change-Id: I8a566994ac815ae480ef1ce1b80c4fb59bef2f92
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/92094
Tested-by: Thorsten Behrens <Thorsten.Behrens@CIB.de>
Reviewed-by: Thorsten Behrens <Thorsten.Behrens@CIB.de>
2020-04-13 01:21:39 +02:00

16 lines
620 B
Groff

--- skia/third_party/skcms/src/Transform_inl.h 2020-04-13 00:38:56.363207994 +0200
+++ skia/third_party/skcms/src/Transform_inl.h~ 2020-04-13 00:39:18.215603244 +0200
@@ -689,11 +689,11 @@
&& (defined(__mips64) || defined(__i386) || defined(__s390x__))
#define MAYBE_NOINLINE __attribute__((noinline))
#else
- #define MAYBE_NOINLINE
+ #define MAYBE_NOINLINE static
#endif
MAYBE_NOINLINE
-static void clut(const skcms_A2B* a2b, F* r, F* g, F* b, F a) {
+void clut(const skcms_A2B* a2b, F* r, F* g, F* b, F a) {
const int dim = (int)a2b->input_channels;
assert (0 < dim && dim <= 4);