Files
chromium-dev/chromium-79-gcc-alignas.patch
Tomáš Chvátal b762e358e8 Accepting request 755755 from network:chromium
- Use internal resources for icon and appdata
- Added patch chromium-vaapi-fix.patch again to fix boo#1146219
-------------------------------------------------------------------  
- Up to 78.0.3887.7
- Enable LTO for x86_64 - add gcc-enable-lto.patch and
  gcc-lto-rsp-clobber.patch patches.
- Refresh patch:
  * chromium-non-void-return.patch
- Add new patch to fix aarch64 build:
  * chromium-fix_swiftshader.patch
- Update %arm build, but keep it disabled for now, as ld requires 
  lots of RAM
- Up to 72.0.3626.14
- Update chromium-vaapi.patch
- Update chromium-system-icu.patch
- Increase %limit_build value to avoid OOM
- Rework aarch64 build requirements
- Reduce jumbo_file_merge_limit to 8 for aarch64 to avoid OOM
- Fix again aarch64 skia build:
  * chromium-skia-aarch64-buildfix.patch
- Up to 71.0.3551.3

- Up to 70.0.3528.4
- Up to chromium-70.0.3521.2
- Add patch trying to build with system icu:
  * chromium-system-icu.patch
- Up to chromium-70.0.3510.0
- Up to 69.0.3497.23
- Up to chromium-69.0.3497.12
- Add patch to fix aarch64 build:

OBS-URL: https://build.opensuse.org/request/show/755755
OBS-URL: https://build.opensuse.org/package/show/network:chromium/chromium?expand=0&rev=1349
2019-12-11 09:26:30 +00:00

69 lines
3.0 KiB
Diff

Re-use chromium alignas workaround in protobuf.
---
diff --git a/third_party/protobuf/src/google/protobuf/arena.h b/third_party/protobuf/src/google/protobuf/arena.h
index dedc221..a8515ce 100644
--- a/third_party/protobuf/src/google/protobuf/arena.h
+++ b/third_party/protobuf/src/google/protobuf/arena.h
@@ -245,7 +245,7 @@ struct ArenaOptions {
// well as protobuf container types like RepeatedPtrField and Map. The protocol
// is internal to protobuf and is not guaranteed to be stable. Non-proto types
// should not rely on this protocol.
-class PROTOBUF_EXPORT alignas(8) Arena final {
+class PROTOBUF_EXPORT PROTOBUF_ALIGNAS(8) Arena final {
public:
// Arena constructor taking custom options. See ArenaOptions below for
// descriptions of the options available.
diff --git a/third_party/protobuf/src/google/protobuf/port_def.inc b/third_party/protobuf/src/google/protobuf/port_def.inc
index f1bd85d..6d02b53 100644
--- a/third_party/protobuf/src/google/protobuf/port_def.inc
+++ b/third_party/protobuf/src/google/protobuf/port_def.inc
@@ -528,6 +528,35 @@ PROTOBUF_EXPORT_TEMPLATE_TEST(DEFAULT, __declspec(dllimport));
#undef IN
#endif // _MSC_VER
+// Specify memory alignment for structs, classes, etc.
+// Use like:
+// class PROTOBUF_ALIGNAS(16) MyClass { ... }
+// PROTOBUF_ALIGNAS(16) int array[4];
+//
+// In most places you can use the C++11 keyword "alignas", which is preferred.
+//
+// But compilers have trouble mixing __attribute__((...)) syntax with
+// alignas(...) syntax.
+//
+// Doesn't work in clang or gcc:
+// struct alignas(16) __attribute__((packed)) S { char c; };
+// Works in clang but not gcc:
+// struct __attribute__((packed)) alignas(16) S2 { char c; };
+// Works in clang and gcc:
+// struct alignas(16) S3 { char c; } __attribute__((packed));
+//
+// There are also some attributes that must be specified *before* a class
+// definition: visibility (used for exporting functions/classes) is one of
+// these attributes. This means that it is not possible to use alignas() with a
+// class that is marked as exported.
+#if defined(_MSC_VER)
+#define PROTOBUF_ALIGNAS(byte_alignment) __declspec(align(byte_alignment))
+#elif defined(__GNUC__)
+#define PROTOBUF_ALIGNAS(byte_alignment) __attribute__((aligned(byte_alignment)))
+#else
+#define PROTOBUF_ALIGNAS(byte_alignment) alignas(byte_alignment)
+#endif
+
#if defined(__clang__)
#pragma clang diagnostic push
// TODO(gerbens) ideally we cleanup the code. But a cursory try shows many
diff --git a/third_party/protobuf/src/google/protobuf/port_undef.inc b/third_party/protobuf/src/google/protobuf/port_undef.inc
index b7e67fe..ba1fffc 100644
--- a/third_party/protobuf/src/google/protobuf/port_undef.inc
+++ b/third_party/protobuf/src/google/protobuf/port_undef.inc
@@ -80,6 +80,7 @@
#undef PROTOBUF_EXPORT_TEMPLATE_STYLE_MATCH_foj3FJo5StF0OvIzl7oMxA__declspec
#undef PROTOBUF_EXPORT_TEMPLATE_STYLE_MATCH_DECLSPEC_dllexport
#undef PROTOBUF_EXPORT_TEMPLATE_STYLE_MATCH_DECLSPEC_dllimport
+#undef PROTOBUF_ALIGNAS