//
// Copyright 2018 The ANGLE Project Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
//
// util_export.h : Defines ANGLE_UTIL_EXPORT, a macro for exporting symbols.

#ifndef UTIL_EXPORT_H_
#define UTIL_EXPORT_H_

#if !defined(ANGLE_UTIL_EXPORT)
#    if defined(_WIN32)
#        if defined(LIBANGLE_UTIL_IMPLEMENTATION)
#            define ANGLE_UTIL_EXPORT __declspec(dllexport)
#        else
#            define ANGLE_UTIL_EXPORT __declspec(dllimport)
#        endif
#    elif defined(__GNUC__)
#        if defined(LIBANGLE_UTIL_IMPLEMENTATION)
#            define ANGLE_UTIL_EXPORT __attribute__((visibility("default")))
#        else
#            define ANGLE_UTIL_EXPORT
#        endif
#    else
#        define ANGLE_UTIL_EXPORT
#    endif
#endif  // !defined(ANGLE_UTIL_EXPORT)

#endif  // UTIL_EXPORT_H_

//
// Copyright 2018 The ANGLE Project Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
//
// util_export.h : Defines ANGLE_UTIL_EXPORT, a macro for exporting symbols.

#ifndef UTIL_EXPORT_H_
#define UTIL_EXPORT_H_

#if !defined(ANGLE_UTIL_EXPORT)
#    if defined(_WIN32)
#        if defined(LIBANGLE_UTIL_IMPLEMENTATION)
#            define ANGLE_UTIL_EXPORT __declspec(dllexport)
#        else
#            define ANGLE_UTIL_EXPORT __declspec(dllimport)
#        endif
#    elif defined(__GNUC__)
#        define ANGLE_UTIL_EXPORT __attribute__((visibility("default")))
#    else
#        define ANGLE_UTIL_EXPORT
#    endif
#endif  // !defined(ANGLE_UTIL_EXPORT)

#endif  // UTIL_EXPORT_H_

--- 
+++ 
@@ -16,7 +16,11 @@
 #            define ANGLE_UTIL_EXPORT __declspec(dllimport)
 #        endif
 #    elif defined(__GNUC__)
-#        define ANGLE_UTIL_EXPORT __attribute__((visibility("default")))
+#        if defined(LIBANGLE_UTIL_IMPLEMENTATION)
+#            define ANGLE_UTIL_EXPORT __attribute__((visibility("default")))
+#        else
+#            define ANGLE_UTIL_EXPORT
+#        endif
 #    else
 #        define ANGLE_UTIL_EXPORT
 #    endif
Revert "util: Always specify default visibility on exports."

This reverts commit 2bf23ea84e4f071c18f01b94748f3be7dccc4019.

Reason for revert: Probably not the right fix. Will export
all angle_utils symbols in places where they shouldn't be.

Original change's description:
> util: Always specify default visibility on exports.
> 
> This fixes undefined behaviour with CFI.
> 
> Bug: chromium:1015810
> Bug: angleproject:3162
> Change-Id: I58cfb78adabbff05e5b4560dfd70b190411fa26d
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1869303
> Reviewed-by: Jamie Madill <7e492b4f1c8458024932de3ba475cbf015424c30@chromium.org>
> Commit-Queue: Jamie Madill <7e492b4f1c8458024932de3ba475cbf015424c30@chromium.org>

TBR=ynovikov@chromium.org,7e492b4f1c8458024932de3ba475cbf015424c30@chromium.org

Change-Id: Ie847a9e6506178eb2b14e63a1ee5e9a1775b4548
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: chromium:1015810, angleproject:3162
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1869546
Reviewed-by: Jamie Madill <7e492b4f1c8458024932de3ba475cbf015424c30@chromium.org>
Commit-Queue: Jamie Madill <7e492b4f1c8458024932de3ba475cbf015424c30@chromium.org>
