From d6f555908157783a309d049405ebe6b676e2b499 Mon Sep 17 00:00:00 2001 From: Princeton Ferro Date: Sun, 9 May 2021 16:00:11 -0400 Subject: codegen: Introduce VALA_EXPORT for public symbols to improve portability Use it as replacement for "extern" and attribute every public symbol. We want to ensure that public symbols are exported, which isn't the default when generating a shared library in MSVC, for example. --- ccode/valaccodedeclaration.vala | 2 +- ccode/valaccodefunction.vala | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) (limited to 'ccode') diff --git a/ccode/valaccodedeclaration.vala b/ccode/valaccodedeclaration.vala index 6da01cfa6..d9bdd82b8 100644 --- a/ccode/valaccodedeclaration.vala +++ b/ccode/valaccodedeclaration.vala @@ -87,7 +87,7 @@ public class Vala.CCodeDeclaration : CCodeStatement { writer.write_string ("volatile "); } if ((modifiers & CCodeModifiers.EXTERN) != 0 && !has_initializer ()) { - writer.write_string ("extern "); + writer.write_string ("VALA_EXTERN "); } if ((modifiers & CCodeModifiers.THREAD_LOCAL) != 0) { writer.write_string ("thread_local "); diff --git a/ccode/valaccodefunction.vala b/ccode/valaccodefunction.vala index b1a529711..395ffdc8b 100644 --- a/ccode/valaccodefunction.vala +++ b/ccode/valaccodefunction.vala @@ -110,6 +110,8 @@ public class Vala.CCodeFunction : CCodeNode { writer.write_indent (line); if (CCodeModifiers.INTERNAL in modifiers) { writer.write_string (GNUC_INTERNAL); + } else if (is_declaration && CCodeModifiers.EXTERN in modifiers) { + writer.write_string ("VALA_EXTERN "); } if (!is_declaration && CCodeModifiers.NO_INLINE in modifiers) { writer.write_string (GNUC_NO_INLINE); -- cgit v1.2.1