chromium/third_party/private-join-and-compute/patches/Support-component-build.diff

diff --git a/crypto/context.h b/crypto/context.h
index 9b0384d9fe0cc..294aa427d91a3 100644
--- a/crypto/context.h
+++ b/crypto/context.h
@@ -21,6 +21,7 @@
 #include <memory>
 #include <string>
 
+#include "third_party/private-join-and-compute/base/private_join_and_compute_export.h"
 #include "third_party/private-join-and-compute/src/chromium_patch.h"
 #include "third_party/private-join-and-compute/src/crypto/big_num.h"
 #include "third_party/private-join-and-compute/src/crypto/openssl.inc"
@@ -40,7 +41,7 @@ std::string OpenSSLErrorString();
 //
 // This class is not thread-safe, so each thread needs to have a unique Context
 // initialized.
-class Context {
+class PRIVATE_COMPUTE_EXPORT Context {
  public:
   // Deletes a BN_CTX.
   class BnCtxDeleter {
diff --git a/crypto/ec_commutative_cipher.h b/crypto/ec_commutative_cipher.h
index 11f2b096e9a2f..83b8fcbec25ff 100644
--- a/crypto/ec_commutative_cipher.h
+++ b/crypto/ec_commutative_cipher.h
@@ -19,6 +19,7 @@
 #include <memory>
 #include <string>
 
+#include "third_party/private-join-and-compute/base/private_join_and_compute_export.h"
 #include "third_party/private-join-and-compute/src/crypto/big_num.h"
 #include "third_party/private-join-and-compute/src/crypto/context.h"
 #include "third_party/private-join-and-compute/src/crypto/ec_group.h"
@@ -82,7 +83,7 @@ namespace private_join_and_compute {
 //    ::private_join_and_compute::StatusOr<std::pair<string, string>> double_encrypted_string =
 //        cipher->ReEncryptElGamalCiphertext(elgamal_ciphertext);
 
-class ECCommutativeCipher {
+class PRIVATE_COMPUTE_EXPORT ECCommutativeCipher {
  public:
   // The hash function used by the ECCommutativeCipher.
   enum HashType {
diff --git a/crypto/ec_group.h b/crypto/ec_group.h
index a1884fba70f2a..5c2db0505069c 100644
--- a/crypto/ec_group.h
+++ b/crypto/ec_group.h
@@ -19,6 +19,7 @@
 #include <memory>
 #include <string>
 
+#include "third_party/private-join-and-compute/base/private_join_and_compute_export.h"
 #include "third_party/private-join-and-compute/src/crypto/big_num.h"
 #include "third_party/private-join-and-compute/src/crypto/context.h"
 #include "third_party/private-join-and-compute/src/crypto/openssl.inc"
@@ -29,7 +30,7 @@ namespace private_join_and_compute {
 class ECPoint;
 
 // Wrapper class for openssl EC_GROUP.
-class ECGroup {
+class PRIVATE_COMPUTE_EXPORT ECGroup {
  public:
   // Deletes a EC_GROUP.
   class ECGroupDeleter {
diff --git a/crypto/ec_point.h b/crypto/ec_point.h
index 0fab463ca6342..93a7e229b718f 100644
--- a/crypto/ec_point.h
+++ b/crypto/ec_point.h
@@ -19,6 +19,7 @@
 #include <memory>
 #include <string>
 
+#include "third_party/private-join-and-compute/base/private_join_and_compute_export.h"
 #include "third_party/private-join-and-compute/src/crypto/openssl.inc"
 #include "third_party/private-join-and-compute/src/util/status.inc"
 
@@ -28,7 +29,7 @@ class BigNum;
 class ECGroup;
 
 // Wrapper class for openssl EC_POINT.
-class ECPoint {
+class PRIVATE_COMPUTE_EXPORT ECPoint {
  public:
   // Deletes an EC_POINT.
   class ECPointDeleter {
diff --git a/util/statusor.h b/util/statusor.h
index a1666d549b0bf..7951d3d31a3c6 100644
--- a/util/statusor.h
+++ b/util/statusor.h
@@ -73,6 +73,7 @@
 #include <new>
 #include <utility>
 
+#include "third_party/private-join-and-compute/base/private_join_and_compute_export.h"
 #include "third_party/private-join-and-compute/src/util/status.h"  // IWYU pragma: export  // for Status
 
 namespace private_join_and_compute {
@@ -151,7 +152,7 @@ namespace private_join_and_compute {
 
 namespace internal {
 
-class StatusOrHelper {
+class PRIVATE_COMPUTE_EXPORT StatusOrHelper {
  public:
   // Move type-agnostic error handling to the .cc.
   static Status HandleInvalidStatusCtorArg();