[PATCH] D75068: libclang: Add static build support for Windows

2020-04-06 Thread Cristian Adam via Phabricator via cfe-commits
cristian.adam added a comment.

ping


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D75068/new/

https://reviews.llvm.org/D75068



___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D75068: libclang: Add static build support for Windows

2020-04-20 Thread Cristian Adam via Phabricator via cfe-commits
cristian.adam added a comment.

@thakis  ping?


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D75068/new/

https://reviews.llvm.org/D75068



___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D75068: libclang: Add static build support for Windows

2020-04-23 Thread Cristian Adam via Phabricator via cfe-commits
cristian.adam marked an inline comment as done.
cristian.adam added a comment.

Since I do not have commit rights, I require help to get this merged.




Comment at: clang/tools/libclang/CMakeLists.txt:88
 
+if (WIN32 AND ENABLE_SHARED AND ENABLE_STATIC)
+  unset(ENABLE_STATIC)

rnk wrote:
> Essentially, this is the fix: don't try to build both libclang.lib for static 
> linking and libclang.dll (and implicitly libclang.lib) on Windows. Is that 
> accurate?
Correct. 


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D75068/new/

https://reviews.llvm.org/D75068



___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D75068: libclang: Add static build support for Windows

2020-04-24 Thread Cristian Adam via Phabricator via cfe-commits
cristian.adam marked an inline comment as done.
cristian.adam added a comment.

@mstorsjo can you merge (again) this on my behalf? Thank you in advance!


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D75068/new/

https://reviews.llvm.org/D75068



___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D75068: libclang: Add static build support for Windows

2020-04-27 Thread Cristian Adam via Phabricator via cfe-commits
cristian.adam added a comment.

In D75068#2004072 , @davezarzycki 
wrote:

> Rather than wholly reverting this, I committed a fix: 
> 665471907a5c072c6653a38c35f35e5d54cef220 
> 
>
> The problem is that "NOT LIBCLANG_BUILD_STATIC" does not imply PIC, so there 
> is no point in trying to build the SHARED version. Please let me know if I 
> somehow missed something. Thanks!


@thakis  has a use case at https://reviews.llvm.org/D74907 building a SHARED 
libclang with `LLVM_ENABLE_PIC` set to `OFF`.

Would the variant `if(LLVM_ENABLE_PIC OR (WIN32 AND NOT 
LIBCLANG_BUILD_STATIC))`  work for the Fedora case?


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D75068/new/

https://reviews.llvm.org/D75068



___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D111100: enable plugins for clang-tidy

2022-02-08 Thread Cristian Adam via Phabricator via cfe-commits
cristian.adam requested changes to this revision.
cristian.adam added a comment.

I had on Windows two uses cases that failed due to this patch.

1. MSVC2019 with `-D LLVM_EXPORT_SYMBOLS_FOR_PLUGINS=ON`

  FAILED: bin/CTTestTidyModule.dll 
  cmd.exe /C "cd . && C:\tools\cmake\bin\cmake.exe -E vs_link_dll 
--intdir=tools\clang\tools\extra\test\CMakeFiles\CTTestTidyModule.dir 
--rc=C:\PROGRA~2\WI3CF2~1\10\bin\100183~1.0\x64\rc.exe 
--mt=C:\PROGRA~2\WI3CF2~1\10\bin\100183~1.0\x64\mt.exe --manifests  -- 
C:\PROGRA~2\MICROS~1\2019\BUILDT~1\VC\Tools\MSVC\1429~1.301\bin\Hostx64\x64\link.exe
 /nologo 
tools\clang\tools\extra\test\CMakeFiles\CTTestTidyModule.dir\clang-tidy\CTTestTidyModule.cpp.obj
  /out:bin\CTTestTidyModule.dll /implib:lib\CTTestTidyModule.lib 
/pdb:bin\CTTestTidyModule.pdb /dll /version:0.0 /machine:x64 /INCREMENTAL:NO  
lib\clang-tidy.lib  kernel32.lib user32.lib gdi32.lib winspool.lib shell32.lib 
ole32.lib oleaut32.lib uuid.lib comdlg32.lib advapi32.lib  && cd ."
  LINK: command 
"C:\PROGRA~2\MICROS~1\2019\BUILDT~1\VC\Tools\MSVC\1429~1.301\bin\Hostx64\x64\link.exe
 /nologo 
tools\clang\tools\extra\test\CMakeFiles\CTTestTidyModule.dir\clang-tidy\CTTestTidyModule.cpp.obj
 /out:bin\CTTestTidyModule.dll /implib:lib\CTTestTidyModule.lib 
/pdb:bin\CTTestTidyModule.pdb /dll /version:0.0 /machine:x64 /INCREMENTAL:NO 
lib\clang-tidy.lib kernel32.lib user32.lib gdi32.lib winspool.lib shell32.lib 
ole32.lib oleaut32.lib uuid.lib comdlg32.lib advapi32.lib /MANIFEST 
/MANIFESTFILE:bin\CTTestTidyModule.dll.manifest" failed (exit code 1120) with 
the following output:
  CTTestTidyModule.cpp.obj : error LNK2001: unresolved external symbol "class 
clang::ast_matchers::internal::VariadicDynCastAllOfMatcher const 
clang::ast_matchers::translationUnitDecl" 
(?translationUnitDecl@ast_matchers@clang@@3V?$VariadicDynCastAllOfMatcher@VDecl@clang@@VTranslationUnitDecl@2@@internal@12@B)
  bin\CTTestTidyModule.dll : fatal error LNK1120: 1 unresolved externals



2. MinGW 11.2.0 with `-D LLVM_BUILD_LLVM_DYLIB=ON` `-D LLVM_LINK_LLVM_DYLIB=ON` 
`-D CLANG_LINK_CLANG_DYLIB=ON`

  FAILED: bin/CTTestTidyModule.dll 
  cmd.exe /C "cd . && C:\mingw64\bin\g++.exe -Wa,-mbig-obj -Werror=date-time 
-Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual 
-Wno-missing-field-initializers -pedantic -Wno-long-long -Wimplicit-fallthrough 
-Wno-maybe-uninitialized -Wno-class-memaccess -Wno-redundant-move 
-Wno-pessimizing-move -Wno-noexcept-type -Wdelete-non-virtual-dtor 
-Wsuggest-override -Wno-comment -Wmisleading-indentation -ffunction-sections 
-fdata-sections -fno-common -Woverloaded-virtual -fno-strict-aliasing  -O2 
-DNDEBUG  -Wl,--gc-sections -shared -o bin\CTTestTidyModule.dll 
-Wl,--major-image-version,0,--minor-image-version,0 
tools/clang/tools/extra/test/CMakeFiles/CTTestTidyModule.dir/clang-tidy/CTTestTidyModule.cpp.obj
  lib/libLLVM-14.dll.a  -lkernel32 -luser32 -lgdi32 -lwinspool -lshell32 
-lole32 -loleaut32 -luuid -lcomdlg32 -ladvapi32 && cd ."
  
C:/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe:
 
tools/clang/tools/extra/test/CMakeFiles/CTTestTidyModule.dir/clang-tidy/CTTestTidyModule.cpp.obj:CTTestTidyModule.cpp:(.text$_ZNK5clang12ast_matchers8internal30matcher_hasDecayedType0Matcher7matchesERKNS_11DecayedTypeEPNS1_14ASTMatchFinderEPNS1_21BoundNodesTreeBuilderE[_ZNK5clang12ast_matchers8internal30matcher_hasDecayedType0Matcher7matchesERKNS_11DecayedTypeEPNS1_14ASTMatchFinderEPNS1_21BoundNodesTreeBuilderE]+0x1f):
 undefined reference to 
`clang::ast_matchers::internal::DynTypedMatcher::matches(clang::DynTypedNode 
const&, clang::ast_matchers::internal::ASTMatchFinder*, 
clang::ast_matchers::internal::BoundNodesTreeBuilder*) const'
  ...


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D00/new/

https://reviews.llvm.org/D00

___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D119199: replace clang LLVM_ENABLE_PLUGINS -> CLANG_PLUGIN_SUPPORT in tests

2022-02-08 Thread Cristian Adam via Phabricator via cfe-commits
cristian.adam requested changes to this revision.
cristian.adam added a comment.
This revision now requires changes to proceed.

This patch is having problems on Windows with MSVC 2019 and `-D 
LLVM_EXPORT_SYMBOLS_FOR_PLUGINS=ON` and `-D 
"LLVM_ENABLE_PROJECTS=clang;clang-tools-extra"`.

CMake doesn't configure the project.

  -- Clang version: 14.0.0
  -- SampleAnalyzerPlugin ignored -- Loadable modules not supported on this 
platform.
  CMake Error at 
C:/Projects/llvm-project/repo/clang/cmake/modules/AddClang.cmake:185 
(target_link_libraries):
Utility target "SampleAnalyzerPlugin" must not be used as the target of a
target_link_libraries call.
  Call Stack (most recent call first):

C:/Projects/llvm-project/repo/clang/lib/Analysis/plugins/SampleAnalyzer/CMakeLists.txt:8
 (clang_target_link_libraries)
  
  
  -- CheckerDependencyHandlingAnalyzerPlugin ignored -- Loadable modules not 
supported on this platform.
  CMake Error at 
C:/Projects/llvm-project/repo/clang/cmake/modules/AddClang.cmake:185 
(target_link_libraries):
Utility target "CheckerDependencyHandlingAnalyzerPlugin" must not be used
as the target of a target_link_libraries call.
  Call Stack (most recent call first):

C:/Projects/llvm-project/repo/clang/lib/Analysis/plugins/CheckerDependencyHandling/CMakeLists.txt:8
 (clang_target_link_libraries)
  
  
  -- CheckerOptionHandlingAnalyzerPlugin ignored -- Loadable modules not 
supported on this platform.
  CMake Error at 
C:/Projects/llvm-project/repo/clang/cmake/modules/AddClang.cmake:185 
(target_link_libraries):
Utility target "CheckerOptionHandlingAnalyzerPlugin" must not be used as
the target of a target_link_libraries call.
  Call Stack (most recent call first):

C:/Projects/llvm-project/repo/clang/lib/Analysis/plugins/CheckerOptionHandling/CMakeLists.txt:8
 (clang_target_link_libraries)




Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D119199/new/

https://reviews.llvm.org/D119199

___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D119199: replace clang LLVM_ENABLE_PLUGINS -> CLANG_PLUGIN_SUPPORT in tests

2022-02-09 Thread Cristian Adam via Phabricator via cfe-commits
cristian.adam resigned from this revision.
cristian.adam added a comment.
This revision is now accepted and ready to land.

In D119199#3309117 , @vtjnash wrote:

> @cristian.adam Is this good now? You are blocking merging this, but I think 
> it is ready to land, and I would like to not hold it up for other people if 
> it is fixing their issues (and the issues you discovered too)

I did a rebase on `release/14.x`, applied this commit and, got the same error:

  -- SampleAnalyzerPlugin ignored -- Loadable modules not supported on this 
platform.
  CMake Error at 
C:/Projects/llvm-project/repo/clang/cmake/modules/AddClang.cmake:185 
(target_link_libraries):
Utility target "SampleAnalyzerPlugin" must not be used as the target of a
target_link_libraries call.
  Call Stack (most recent call first):

C:/Projects/llvm-project/repo/clang/lib/Analysis/plugins/SampleAnalyzer/CMakeLists.txt:8
 (clang_target_link_libraries)
  
  
  -- CheckerDependencyHandlingAnalyzerPlugin ignored -- Loadable modules not 
supported on this platform.
  CMake Error at 
C:/Projects/llvm-project/repo/clang/cmake/modules/AddClang.cmake:185 
(target_link_libraries):
Utility target "CheckerDependencyHandlingAnalyzerPlugin" must not be used
as the target of a target_link_libraries call.
  Call Stack (most recent call first):

C:/Projects/llvm-project/repo/clang/lib/Analysis/plugins/CheckerDependencyHandling/CMakeLists.txt:8
 (clang_target_link_libraries)
  
  
  -- CheckerOptionHandlingAnalyzerPlugin ignored -- Loadable modules not 
supported on this platform.
  CMake Error at 
C:/Projects/llvm-project/repo/clang/cmake/modules/AddClang.cmake:185 
(target_link_libraries):
Utility target "CheckerOptionHandlingAnalyzerPlugin" must not be used as
the target of a target_link_libraries call.
  Call Stack (most recent call first):

C:/Projects/llvm-project/repo/clang/lib/Analysis/plugins/CheckerOptionHandling/CMakeLists.txt:8
 (clang_target_link_libraries)
   

I'll be away for a week, so I won't be blocking anybody now. I'll have to deal 
with building LLVM/Clang 14 when I come back.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D119199/new/

https://reviews.llvm.org/D119199

___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D75068: libclang: Add static build support for Windows

2020-03-23 Thread Cristian Adam via Phabricator via cfe-commits
cristian.adam added a comment.

Ping.

I find it a bit uncool to revert commits and then be away for a month.

I guess it's my fault for not making the patch perfect in the first place.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D75068/new/

https://reviews.llvm.org/D75068



___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D75068: libclang: Add static build support for Windows

2020-03-30 Thread Cristian Adam via Phabricator via cfe-commits
cristian.adam added a comment.

Ping


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D75068/new/

https://reviews.llvm.org/D75068



___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D74564: libclang: Add static build support for Windows

2020-02-19 Thread Cristian Adam via Phabricator via cfe-commits
cristian.adam added a comment.

@mstorsjo can you help me with pushing this commit? Thank you in advance!


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D74564/new/

https://reviews.llvm.org/D74564



___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D74564: libclang: Add static build support for Windows

2020-02-20 Thread Cristian Adam via Phabricator via cfe-commits
cristian.adam marked an inline comment as done.
cristian.adam added inline comments.



Comment at: clang/tools/libclang/CMakeLists.txt:117
 if(ENABLE_SHARED)
+  target_compile_definitions(libclang PUBLIC CINDEX_EXPORTS)
   if(WIN32)

thakis wrote:
> Is this enough? Every target that depends on libclang now needs to define 
> CINDEX_EXPORTS – is that already the case?
The targets that depend on libclang should get the `CINDEX_EXPORTS` from 
libclang due to the `PUBLIC` usage.




Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D74564/new/

https://reviews.llvm.org/D74564



___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D74564: libclang: Add static build support for Windows

2020-02-20 Thread Cristian Adam via Phabricator via cfe-commits
cristian.adam added a comment.

> Given that this is currently a breaking change: Does it make sense to re-use 
> LLVM_ENABLE_PIC for this, which currently doesn't have an effect on Windows 
> anywhere? Maybe there should be a dedicated "I want libclang to be a static 
> library" opt-in? And maybe the Platform.h should default to the dll setup and 
> require a define to not use it, instead of the other way round?  That seems 
> safer for embedders.

I'll try the other way around in a subsequent review.  I agree that the 
existing code shouldn't be changed, and only the users that want a static 
libclang should have to do changes.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D74564/new/

https://reviews.llvm.org/D74564



___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D74564: libclang: Add static build support for Windows

2020-02-20 Thread Cristian Adam via Phabricator via cfe-commits
cristian.adam added a comment.

In D74564#1884675 , @thakis wrote:

> Great, thanks. Since we're currently broken due to this change, any ETA for 
> the follow-up?


I'll submit it today.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D74564/new/

https://reviews.llvm.org/D74564



___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D74907: libclang: Make shared object symbol exporting by default

2020-02-20 Thread Cristian Adam via Phabricator via cfe-commits
cristian.adam created this revision.
cristian.adam added reviewers: yvvan, mstorsjo, thakis.
Herald added subscribers: cfe-commits, mgorny.
Herald added a project: clang.

https://reviews.llvm.org/D74564 enabled static building for libclang, and for 
non CMake consumers they had to set the `CMAKE_EXPORTS` define when consuming 
libclang.

  

This commit makes the non CMake users of the static building have to define 
`CMAKE_NO_EXPORTS`.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D74907

Files:
  clang/include/clang-c/Platform.h
  clang/tools/libclang/CMakeLists.txt


Index: clang/tools/libclang/CMakeLists.txt
===
--- clang/tools/libclang/CMakeLists.txt
+++ clang/tools/libclang/CMakeLists.txt
@@ -113,8 +113,15 @@
   Support
   )
 
+if(ENABLE_STATIC)
+  foreach(name libclang obj.libclang libclang_static)
+if (TARGET ${name})
+  target_compile_definitions(${name} PUBLIC CINDEX_NO_EXPORTS)
+endif()
+  endforeach()
+endif()
+
 if(ENABLE_SHARED)
-  target_compile_definitions(libclang PUBLIC CINDEX_EXPORTS)
   if(WIN32)
 set_target_properties(libclang
   PROPERTIES
Index: clang/include/clang-c/Platform.h
===
--- clang/include/clang-c/Platform.h
+++ clang/include/clang-c/Platform.h
@@ -19,6 +19,9 @@
 LLVM_CLANG_C_EXTERN_C_BEGIN
 
 /* Windows DLL import/export. */
+#ifndef CINDEX_NO_EXPORTS
+  #define CINDEX_EXPORTS
+#endif
 #ifdef _WIN32
   #ifdef CINDEX_EXPORTS
 #ifdef _CINDEX_LIB_
@@ -27,7 +30,7 @@
   #define CINDEX_LINKAGE __declspec(dllimport)
 #endif
   #endif
-#elif defined(CINDEX_EXPORTS)
+#elif defined(CINDEX_EXPORTS) && defined(__GNUC__)
   #define CINDEX_LINKAGE __attribute__((visibility("default")))
 #endif
 


Index: clang/tools/libclang/CMakeLists.txt
===
--- clang/tools/libclang/CMakeLists.txt
+++ clang/tools/libclang/CMakeLists.txt
@@ -113,8 +113,15 @@
   Support
   )
 
+if(ENABLE_STATIC)
+  foreach(name libclang obj.libclang libclang_static)
+if (TARGET ${name})
+  target_compile_definitions(${name} PUBLIC CINDEX_NO_EXPORTS)
+endif()
+  endforeach()
+endif()
+
 if(ENABLE_SHARED)
-  target_compile_definitions(libclang PUBLIC CINDEX_EXPORTS)
   if(WIN32)
 set_target_properties(libclang
   PROPERTIES
Index: clang/include/clang-c/Platform.h
===
--- clang/include/clang-c/Platform.h
+++ clang/include/clang-c/Platform.h
@@ -19,6 +19,9 @@
 LLVM_CLANG_C_EXTERN_C_BEGIN
 
 /* Windows DLL import/export. */
+#ifndef CINDEX_NO_EXPORTS
+  #define CINDEX_EXPORTS
+#endif
 #ifdef _WIN32
   #ifdef CINDEX_EXPORTS
 #ifdef _CINDEX_LIB_
@@ -27,7 +30,7 @@
   #define CINDEX_LINKAGE __declspec(dllimport)
 #endif
   #endif
-#elif defined(CINDEX_EXPORTS)
+#elif defined(CINDEX_EXPORTS) && defined(__GNUC__)
   #define CINDEX_LINKAGE __attribute__((visibility("default")))
 #endif
 
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D74564: libclang: Add static build support for Windows

2020-02-20 Thread Cristian Adam via Phabricator via cfe-commits
cristian.adam added a comment.

> I'll submit it today.

Done, see: https://reviews.llvm.org/D74907


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D74564/new/

https://reviews.llvm.org/D74564



___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D74907: libclang: Make shared object symbol exporting by default

2020-02-20 Thread Cristian Adam via Phabricator via cfe-commits
cristian.adam marked an inline comment as done.
cristian.adam added inline comments.



Comment at: clang/include/clang-c/Platform.h:33
   #endif
-#elif defined(CINDEX_EXPORTS)
+#elif defined(CINDEX_EXPORTS) && defined(__GNUC__)
   #define CINDEX_LINKAGE __attribute__((visibility("default")))

thakis wrote:
> Why is this change necessary?
I thought it would be nice to match the line 44, which deals with  
`__attribute__((deprecated))`


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D74907/new/

https://reviews.llvm.org/D74907



___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D74907: libclang: Make shared object symbol exporting by default

2020-02-20 Thread Cristian Adam via Phabricator via cfe-commits
cristian.adam added a comment.

In D74907#1884795 , @thakis wrote:

> Thanks! Does this make it so that libclang.dll is built again with 
> -DLLVM_ENABLE_PIC=NO on Window? From what I understand, it doesn't. Is that 
> correct? If so, could you reinstantiate that too?


It should work with `-DLLVM_ENABLE_PIC=NO` because now only the static targets 
get the `CINDEX_NO_EXPORTS` define.

https://reviews.llvm.org/D74564 only adds `CINDEX_EXPORTS` to `libclang` and 
not `obj.libclang`.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D74907/new/

https://reviews.llvm.org/D74907



___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D74907: libclang: Make shared object symbol exporting by default

2020-02-20 Thread Cristian Adam via Phabricator via cfe-commits
cristian.adam added a comment.

I do not have commit rights, I need help to submit this patch.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D74907/new/

https://reviews.llvm.org/D74907



___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D74907: libclang: Make shared object symbol exporting by default

2020-02-20 Thread Cristian Adam via Phabricator via cfe-commits
cristian.adam updated this revision to Diff 245683.
cristian.adam added a comment.

`-DLLVM_ENABLE_PIC=OFF`  on Windows if `LIBCLANG_BUILD_STATIC` is not set to 
`ON` will generate a SHARED libclang.dll


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D74907/new/

https://reviews.llvm.org/D74907

Files:
  clang/include/clang-c/Platform.h
  clang/tools/libclang/CMakeLists.txt


Index: clang/tools/libclang/CMakeLists.txt
===
--- clang/tools/libclang/CMakeLists.txt
+++ clang/tools/libclang/CMakeLists.txt
@@ -77,7 +77,7 @@
   set(LLVM_EXPORTED_SYMBOL_FILE)
 endif()
 
-if(LLVM_ENABLE_PIC)
+if(LLVM_ENABLE_PIC OR NOT LIBCLANG_BUILD_STATIC)
   set(ENABLE_SHARED SHARED)
 endif()
 
@@ -113,8 +113,15 @@
   Support
   )
 
+if(ENABLE_STATIC)
+  foreach(name libclang obj.libclang libclang_static)
+if (TARGET ${name})
+  target_compile_definitions(${name} PUBLIC CINDEX_NO_EXPORTS)
+endif()
+  endforeach()
+endif()
+
 if(ENABLE_SHARED)
-  target_compile_definitions(libclang PUBLIC CINDEX_EXPORTS)
   if(WIN32)
 set_target_properties(libclang
   PROPERTIES
Index: clang/include/clang-c/Platform.h
===
--- clang/include/clang-c/Platform.h
+++ clang/include/clang-c/Platform.h
@@ -19,6 +19,9 @@
 LLVM_CLANG_C_EXTERN_C_BEGIN
 
 /* Windows DLL import/export. */
+#ifndef CINDEX_NO_EXPORTS
+  #define CINDEX_EXPORTS
+#endif
 #ifdef _WIN32
   #ifdef CINDEX_EXPORTS
 #ifdef _CINDEX_LIB_
@@ -27,7 +30,7 @@
   #define CINDEX_LINKAGE __declspec(dllimport)
 #endif
   #endif
-#elif defined(CINDEX_EXPORTS)
+#elif defined(CINDEX_EXPORTS) && defined(__GNUC__)
   #define CINDEX_LINKAGE __attribute__((visibility("default")))
 #endif
 


Index: clang/tools/libclang/CMakeLists.txt
===
--- clang/tools/libclang/CMakeLists.txt
+++ clang/tools/libclang/CMakeLists.txt
@@ -77,7 +77,7 @@
   set(LLVM_EXPORTED_SYMBOL_FILE)
 endif()
 
-if(LLVM_ENABLE_PIC)
+if(LLVM_ENABLE_PIC OR NOT LIBCLANG_BUILD_STATIC)
   set(ENABLE_SHARED SHARED)
 endif()
 
@@ -113,8 +113,15 @@
   Support
   )
 
+if(ENABLE_STATIC)
+  foreach(name libclang obj.libclang libclang_static)
+if (TARGET ${name})
+  target_compile_definitions(${name} PUBLIC CINDEX_NO_EXPORTS)
+endif()
+  endforeach()
+endif()
+
 if(ENABLE_SHARED)
-  target_compile_definitions(libclang PUBLIC CINDEX_EXPORTS)
   if(WIN32)
 set_target_properties(libclang
   PROPERTIES
Index: clang/include/clang-c/Platform.h
===
--- clang/include/clang-c/Platform.h
+++ clang/include/clang-c/Platform.h
@@ -19,6 +19,9 @@
 LLVM_CLANG_C_EXTERN_C_BEGIN
 
 /* Windows DLL import/export. */
+#ifndef CINDEX_NO_EXPORTS
+  #define CINDEX_EXPORTS
+#endif
 #ifdef _WIN32
   #ifdef CINDEX_EXPORTS
 #ifdef _CINDEX_LIB_
@@ -27,7 +30,7 @@
   #define CINDEX_LINKAGE __declspec(dllimport)
 #endif
   #endif
-#elif defined(CINDEX_EXPORTS)
+#elif defined(CINDEX_EXPORTS) && defined(__GNUC__)
   #define CINDEX_LINKAGE __attribute__((visibility("default")))
 #endif
 
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D74907: libclang: Make shared object symbol exporting by default

2020-02-20 Thread Cristian Adam via Phabricator via cfe-commits
cristian.adam added a comment.

> The problem is (I believe) that `add_clang_library(libclang ` is passed 
> `${ENABLE_SHARED}` and that used to be true on Windows but no longer is after 
> your change (due to the change in line 80 in your original change), so 
> libclang.dll isn't built at all any longer. If it was still built, the 
> `_CINDEX_LIB_` logic around line 128 wouldn't be passed for the same reason.

Right, I've uploaded a new patch which should take care of it.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D74907/new/

https://reviews.llvm.org/D74907



___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D74907: libclang: Make shared object symbol exporting by default

2020-02-20 Thread Cristian Adam via Phabricator via cfe-commits
cristian.adam added a comment.

> The problem is (I believe) that `add_clang_library(libclang ` is passed 
> `${ENABLE_SHARED}` and that used to be true on Windows but no longer is after 
> your change (due to the change in line 80 in your original change), so 
> libclang.dll isn't built at all any longer. If it was still built, the 
> `_CINDEX_LIB_` logic around line 128 wouldn't be passed for the same reason.

Right, I've uploaded a new patch which should take care of it.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D74907/new/

https://reviews.llvm.org/D74907



___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D74907: libclang: Make shared object symbol exporting by default

2020-02-20 Thread Cristian Adam via Phabricator via cfe-commits
cristian.adam added a comment.

Thank you!

A build with `-DLIBCLANG_BUILD_STATIC=ON` and `-DLLVM_ENABLE_PIC=OFF` is green 
at: 
https://github.com/cristianadam/llvm-project/actions/runs/42545217

The default build with `-DLIBCLANG_BUILD_STATIC=OFF` and `-DLLVM_ENABLE_PIC=ON` 
is green at: 
https://github.com/cristianadam/llvm-project/actions/runs/42516378


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D74907/new/

https://reviews.llvm.org/D74907



___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D75068: libclang: Add static build support for Windows

2020-02-24 Thread Cristian Adam via Phabricator via cfe-commits
cristian.adam created this revision.
cristian.adam added reviewers: yvvan, thakis, mstorsjo.
Herald added subscribers: cfe-commits, mgorny.
Herald added a project: clang.

This patch is a squash for:

https://reviews.llvm.org/D74564
https://reviews.llvm.org/D74907

And a fix for the issue that got both changes reverted. The case on Windows 
when both STATIC and SHARED options were generated, which on on Windows is not 
possible.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D75068

Files:
  clang/include/clang-c/Platform.h
  clang/tools/libclang/CMakeLists.txt


Index: clang/tools/libclang/CMakeLists.txt
===
--- clang/tools/libclang/CMakeLists.txt
+++ clang/tools/libclang/CMakeLists.txt
@@ -77,14 +77,18 @@
   set(LLVM_EXPORTED_SYMBOL_FILE)
 endif()
 
-if(LLVM_ENABLE_PIC OR WIN32)
+if(LLVM_ENABLE_PIC OR NOT LIBCLANG_BUILD_STATIC)
   set(ENABLE_SHARED SHARED)
 endif()
 
-if((NOT LLVM_ENABLE_PIC OR LIBCLANG_BUILD_STATIC) AND NOT WIN32)
+if(NOT LLVM_ENABLE_PIC OR LIBCLANG_BUILD_STATIC)
   set(ENABLE_STATIC STATIC)
 endif()
 
+if (WIN32 AND ENABLE_SHARED AND ENABLE_STATIC)
+  unset(ENABLE_STATIC)
+endif()
+
 if(WIN32)
   set(output_name "libclang")
 else()
@@ -113,6 +117,14 @@
   Support
   )
 
+if(ENABLE_STATIC)
+  foreach(name libclang obj.libclang libclang_static)
+if (TARGET ${name})
+  target_compile_definitions(${name} PUBLIC CINDEX_NO_EXPORTS)
+endif()
+  endforeach()
+endif()
+
 if(ENABLE_SHARED)
   if(WIN32)
 set_target_properties(libclang
Index: clang/include/clang-c/Platform.h
===
--- clang/include/clang-c/Platform.h
+++ clang/include/clang-c/Platform.h
@@ -18,14 +18,23 @@
 
 LLVM_CLANG_C_EXTERN_C_BEGIN
 
-/* MSVC DLL import/export. */
-#ifdef _MSC_VER
-  #ifdef _CINDEX_LIB_
-#define CINDEX_LINKAGE __declspec(dllexport)
-  #else
-#define CINDEX_LINKAGE __declspec(dllimport)
+/* Windows DLL import/export. */
+#ifndef CINDEX_NO_EXPORTS
+  #define CINDEX_EXPORTS
+#endif
+#ifdef _WIN32
+  #ifdef CINDEX_EXPORTS
+#ifdef _CINDEX_LIB_
+  #define CINDEX_LINKAGE __declspec(dllexport)
+#else
+  #define CINDEX_LINKAGE __declspec(dllimport)
+#endif
   #endif
-#else
+#elif defined(CINDEX_EXPORTS) && defined(__GNUC__)
+  #define CINDEX_LINKAGE __attribute__((visibility("default")))
+#endif
+
+#ifndef CINDEX_LINKAGE
   #define CINDEX_LINKAGE
 #endif
 


Index: clang/tools/libclang/CMakeLists.txt
===
--- clang/tools/libclang/CMakeLists.txt
+++ clang/tools/libclang/CMakeLists.txt
@@ -77,14 +77,18 @@
   set(LLVM_EXPORTED_SYMBOL_FILE)
 endif()
 
-if(LLVM_ENABLE_PIC OR WIN32)
+if(LLVM_ENABLE_PIC OR NOT LIBCLANG_BUILD_STATIC)
   set(ENABLE_SHARED SHARED)
 endif()
 
-if((NOT LLVM_ENABLE_PIC OR LIBCLANG_BUILD_STATIC) AND NOT WIN32)
+if(NOT LLVM_ENABLE_PIC OR LIBCLANG_BUILD_STATIC)
   set(ENABLE_STATIC STATIC)
 endif()
 
+if (WIN32 AND ENABLE_SHARED AND ENABLE_STATIC)
+  unset(ENABLE_STATIC)
+endif()
+
 if(WIN32)
   set(output_name "libclang")
 else()
@@ -113,6 +117,14 @@
   Support
   )
 
+if(ENABLE_STATIC)
+  foreach(name libclang obj.libclang libclang_static)
+if (TARGET ${name})
+  target_compile_definitions(${name} PUBLIC CINDEX_NO_EXPORTS)
+endif()
+  endforeach()
+endif()
+
 if(ENABLE_SHARED)
   if(WIN32)
 set_target_properties(libclang
Index: clang/include/clang-c/Platform.h
===
--- clang/include/clang-c/Platform.h
+++ clang/include/clang-c/Platform.h
@@ -18,14 +18,23 @@
 
 LLVM_CLANG_C_EXTERN_C_BEGIN
 
-/* MSVC DLL import/export. */
-#ifdef _MSC_VER
-  #ifdef _CINDEX_LIB_
-#define CINDEX_LINKAGE __declspec(dllexport)
-  #else
-#define CINDEX_LINKAGE __declspec(dllimport)
+/* Windows DLL import/export. */
+#ifndef CINDEX_NO_EXPORTS
+  #define CINDEX_EXPORTS
+#endif
+#ifdef _WIN32
+  #ifdef CINDEX_EXPORTS
+#ifdef _CINDEX_LIB_
+  #define CINDEX_LINKAGE __declspec(dllexport)
+#else
+  #define CINDEX_LINKAGE __declspec(dllimport)
+#endif
   #endif
-#else
+#elif defined(CINDEX_EXPORTS) && defined(__GNUC__)
+  #define CINDEX_LINKAGE __attribute__((visibility("default")))
+#endif
+
+#ifndef CINDEX_LINKAGE
   #define CINDEX_LINKAGE
 #endif
 
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D75068: libclang: Add static build support for Windows

2020-02-25 Thread Cristian Adam via Phabricator via cfe-commits
cristian.adam added a comment.

I've tested this patch with:

  -D LIBCLANG_BUILD_STATIC=OFF
  -D LLVM_ENABLE_PIC=ON

All green https://github.com/cristianadam/llvm-project/actions/runs/44839699

Then:

  -D LIBCLANG_BUILD_STATIC=ON
  -D LLVM_ENABLE_PIC=OFF

All green https://github.com/cristianadam/llvm-project/actions/runs/44755935

And lastly:

  -D LIBCLANG_BUILD_STATIC=OFF
  -D LLVM_ENABLE_PIC=OFF

Which builds on Windows and macOS, and fails on Linux as expected 
https://github.com/cristianadam/llvm-project/actions/runs/44423211

The expected Linux error is:

  /usr/bin/ld: lib/libclangBasic.a(Stack.cpp.o): relocation R_X86_64_TPOFF32 
against `_ZL13BottomOfStack' can not be used when making a shared object; 
recompile with -fPIC
  /usr/bin/ld: lib/libLLVMSupport.a(PrettyStackTrace.cpp.o): relocation 
R_X86_64_TPOFF32 against `_ZL20PrettyStackTraceHead' can not be used when 
making a shared object; recompile with -fPIC
  /usr/bin/ld: lib/libLLVMSupport.a(TimeProfiler.cpp.o): relocation 
R_X86_64_TPOFF32 against `_ZN12_GLOBAL__N_125TimeTraceProfilerInstanceE' can 
not be used when making a shared object; recompile with -fPIC
  /usr/bin/ld: 
tools/clang/tools/libclang/CMakeFiles/obj.libclang.dir/CIndex.cpp.o: relocation 
R_X86_64_PC32 against symbol `clang_getCursorLocation' can not be used when 
making a shared object; recompile with -fPIC
  /usr/bin/ld: final link failed: Bad value

From my point of view it passes all configurations. What do you think?


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D75068/new/

https://reviews.llvm.org/D75068



___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D75068: libclang: Add static build support for Windows

2020-02-27 Thread Cristian Adam via Phabricator via cfe-commits
cristian.adam added a comment.

ping?


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D75068/new/

https://reviews.llvm.org/D75068



___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D75068: libclang: Add static build support for Windows

2020-03-09 Thread Cristian Adam via Phabricator via cfe-commits
cristian.adam added a comment.

ping?


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D75068/new/

https://reviews.llvm.org/D75068



___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D75068: libclang: Add static build support for Windows

2020-03-16 Thread Cristian Adam via Phabricator via cfe-commits
cristian.adam added a comment.

Ping.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D75068/new/

https://reviews.llvm.org/D75068



___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D74564: libclang: Add static build support for Windows

2020-02-13 Thread Cristian Adam via Phabricator via cfe-commits
cristian.adam created this revision.
cristian.adam added reviewers: chapuni, yvvan.
Herald added subscribers: cfe-commits, mgorny.
Herald added a project: clang.

On Linux and macOS it was possible to build libclang statically by configuring 
CMake with:

-D LIBCLANG_BUILD_STATIC=ON
-D LLVM_ENABLE_PIC=OFF

On Windows was not possible. This commit fixes this.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D74564

Files:
  clang/include/clang-c/Platform.h
  clang/tools/libclang/CMakeLists.txt


Index: clang/tools/libclang/CMakeLists.txt
===
--- clang/tools/libclang/CMakeLists.txt
+++ clang/tools/libclang/CMakeLists.txt
@@ -77,11 +77,11 @@
   set(LLVM_EXPORTED_SYMBOL_FILE)
 endif()
 
-if(LLVM_ENABLE_PIC OR WIN32)
+if(LLVM_ENABLE_PIC)
   set(ENABLE_SHARED SHARED)
 endif()
 
-if((NOT LLVM_ENABLE_PIC OR LIBCLANG_BUILD_STATIC) AND NOT WIN32)
+if(NOT LLVM_ENABLE_PIC OR LIBCLANG_BUILD_STATIC)
   set(ENABLE_STATIC STATIC)
 endif()
 
@@ -114,6 +114,7 @@
   )
 
 if(ENABLE_SHARED)
+  target_compile_definitions(libclang PUBLIC CINDEX_EXPORTS)
   if(WIN32)
 set_target_properties(libclang
   PROPERTIES 
Index: clang/include/clang-c/Platform.h
===
--- clang/include/clang-c/Platform.h
+++ clang/include/clang-c/Platform.h
@@ -18,14 +18,20 @@
 
 LLVM_CLANG_C_EXTERN_C_BEGIN
 
-/* MSVC DLL import/export. */
-#ifdef _MSC_VER
-  #ifdef _CINDEX_LIB_
-#define CINDEX_LINKAGE __declspec(dllexport)
-  #else
-#define CINDEX_LINKAGE __declspec(dllimport)
+/* Windows DLL import/export. */
+#ifdef _WIN32
+  #ifdef CINDEX_EXPORTS
+#ifdef _CINDEX_LIB_
+  #define CINDEX_LINKAGE __declspec(dllexport)
+#else
+  #define CINDEX_LINKAGE __declspec(dllimport)
+#endif
   #endif
-#else
+#elif defined(CINDEX_EXPORTS)
+  #define CINDEX_LINKAGE __attribute__((visibility("default")))
+#endif
+
+#ifndef CINDEX_LINKAGE
   #define CINDEX_LINKAGE
 #endif
 


Index: clang/tools/libclang/CMakeLists.txt
===
--- clang/tools/libclang/CMakeLists.txt
+++ clang/tools/libclang/CMakeLists.txt
@@ -77,11 +77,11 @@
   set(LLVM_EXPORTED_SYMBOL_FILE)
 endif()
 
-if(LLVM_ENABLE_PIC OR WIN32)
+if(LLVM_ENABLE_PIC)
   set(ENABLE_SHARED SHARED)
 endif()
 
-if((NOT LLVM_ENABLE_PIC OR LIBCLANG_BUILD_STATIC) AND NOT WIN32)
+if(NOT LLVM_ENABLE_PIC OR LIBCLANG_BUILD_STATIC)
   set(ENABLE_STATIC STATIC)
 endif()
 
@@ -114,6 +114,7 @@
   )
 
 if(ENABLE_SHARED)
+  target_compile_definitions(libclang PUBLIC CINDEX_EXPORTS)
   if(WIN32)
 set_target_properties(libclang
   PROPERTIES 
Index: clang/include/clang-c/Platform.h
===
--- clang/include/clang-c/Platform.h
+++ clang/include/clang-c/Platform.h
@@ -18,14 +18,20 @@
 
 LLVM_CLANG_C_EXTERN_C_BEGIN
 
-/* MSVC DLL import/export. */
-#ifdef _MSC_VER
-  #ifdef _CINDEX_LIB_
-#define CINDEX_LINKAGE __declspec(dllexport)
-  #else
-#define CINDEX_LINKAGE __declspec(dllimport)
+/* Windows DLL import/export. */
+#ifdef _WIN32
+  #ifdef CINDEX_EXPORTS
+#ifdef _CINDEX_LIB_
+  #define CINDEX_LINKAGE __declspec(dllexport)
+#else
+  #define CINDEX_LINKAGE __declspec(dllimport)
+#endif
   #endif
-#else
+#elif defined(CINDEX_EXPORTS)
+  #define CINDEX_LINKAGE __attribute__((visibility("default")))
+#endif
+
+#ifndef CINDEX_LINKAGE
   #define CINDEX_LINKAGE
 #endif
 
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D74564: libclang: Add static build support for Windows

2020-02-13 Thread Cristian Adam via Phabricator via cfe-commits
cristian.adam added a comment.

Build with this patch being built on GitHub Actions on Windows MSVC, Windows 
MinGW, Linux, macOS: 
https://github.com/cristianadam/llvm-project/actions/runs/38838989


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D74564/new/

https://reviews.llvm.org/D74564



___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D74564: libclang: Add static build support for Windows

2020-02-17 Thread Cristian Adam via Phabricator via cfe-commits
cristian.adam added inline comments.



Comment at: clang/include/clang-c/Platform.h:31
+#elif defined(CINDEX_EXPORTS)
+  #define CINDEX_LINKAGE __attribute__((visibility("default")))
+#endif

yvvan wrote:
> Is it different from just leaving CINDEX_LINKAGE empty?
On Windows the default symbol visibility is hidden and with CINDEX_LINKAGE we 
make the symbols visible.

On Linux it's the other way around, everything is visible, but 
with CMAKE_CXX_VISIBILITY_PRESET=hidden we will have the Windows behavior and 
then we need to make CINDEX_LINKAGE point to something that will make the 
symbols visible.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D74564/new/

https://reviews.llvm.org/D74564



___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D74564: libclang: Add static build support for Windows

2020-02-17 Thread Cristian Adam via Phabricator via cfe-commits
cristian.adam updated this revision to Diff 244944.
cristian.adam marked an inline comment as done.

Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D74564/new/

https://reviews.llvm.org/D74564

Files:
  clang/include/clang-c/Platform.h
  clang/tools/libclang/CMakeLists.txt


Index: clang/tools/libclang/CMakeLists.txt
===
--- clang/tools/libclang/CMakeLists.txt
+++ clang/tools/libclang/CMakeLists.txt
@@ -77,11 +77,11 @@
   set(LLVM_EXPORTED_SYMBOL_FILE)
 endif()
 
-if(LLVM_ENABLE_PIC OR WIN32)
+if(LLVM_ENABLE_PIC)
   set(ENABLE_SHARED SHARED)
 endif()
 
-if((NOT LLVM_ENABLE_PIC OR LIBCLANG_BUILD_STATIC) AND NOT WIN32)
+if(NOT LLVM_ENABLE_PIC OR LIBCLANG_BUILD_STATIC)
   set(ENABLE_STATIC STATIC)
 endif()
 
@@ -114,6 +114,7 @@
   )
 
 if(ENABLE_SHARED)
+  target_compile_definitions(libclang PUBLIC CINDEX_EXPORTS)
   if(WIN32)
 set_target_properties(libclang
   PROPERTIES
Index: clang/include/clang-c/Platform.h
===
--- clang/include/clang-c/Platform.h
+++ clang/include/clang-c/Platform.h
@@ -18,14 +18,20 @@
 
 LLVM_CLANG_C_EXTERN_C_BEGIN
 
-/* MSVC DLL import/export. */
-#ifdef _MSC_VER
-  #ifdef _CINDEX_LIB_
-#define CINDEX_LINKAGE __declspec(dllexport)
-  #else
-#define CINDEX_LINKAGE __declspec(dllimport)
+/* Windows DLL import/export. */
+#ifdef _WIN32
+  #ifdef CINDEX_EXPORTS
+#ifdef _CINDEX_LIB_
+  #define CINDEX_LINKAGE __declspec(dllexport)
+#else
+  #define CINDEX_LINKAGE __declspec(dllimport)
+#endif
   #endif
-#else
+#elif defined(CINDEX_EXPORTS)
+  #define CINDEX_LINKAGE __attribute__((visibility("default")))
+#endif
+
+#ifndef CINDEX_LINKAGE
   #define CINDEX_LINKAGE
 #endif
 


Index: clang/tools/libclang/CMakeLists.txt
===
--- clang/tools/libclang/CMakeLists.txt
+++ clang/tools/libclang/CMakeLists.txt
@@ -77,11 +77,11 @@
   set(LLVM_EXPORTED_SYMBOL_FILE)
 endif()
 
-if(LLVM_ENABLE_PIC OR WIN32)
+if(LLVM_ENABLE_PIC)
   set(ENABLE_SHARED SHARED)
 endif()
 
-if((NOT LLVM_ENABLE_PIC OR LIBCLANG_BUILD_STATIC) AND NOT WIN32)
+if(NOT LLVM_ENABLE_PIC OR LIBCLANG_BUILD_STATIC)
   set(ENABLE_STATIC STATIC)
 endif()
 
@@ -114,6 +114,7 @@
   )
 
 if(ENABLE_SHARED)
+  target_compile_definitions(libclang PUBLIC CINDEX_EXPORTS)
   if(WIN32)
 set_target_properties(libclang
   PROPERTIES
Index: clang/include/clang-c/Platform.h
===
--- clang/include/clang-c/Platform.h
+++ clang/include/clang-c/Platform.h
@@ -18,14 +18,20 @@
 
 LLVM_CLANG_C_EXTERN_C_BEGIN
 
-/* MSVC DLL import/export. */
-#ifdef _MSC_VER
-  #ifdef _CINDEX_LIB_
-#define CINDEX_LINKAGE __declspec(dllexport)
-  #else
-#define CINDEX_LINKAGE __declspec(dllimport)
+/* Windows DLL import/export. */
+#ifdef _WIN32
+  #ifdef CINDEX_EXPORTS
+#ifdef _CINDEX_LIB_
+  #define CINDEX_LINKAGE __declspec(dllexport)
+#else
+  #define CINDEX_LINKAGE __declspec(dllimport)
+#endif
   #endif
-#else
+#elif defined(CINDEX_EXPORTS)
+  #define CINDEX_LINKAGE __attribute__((visibility("default")))
+#endif
+
+#ifndef CINDEX_LINKAGE
   #define CINDEX_LINKAGE
 #endif
 
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D74564: libclang: Add static build support for Windows

2020-02-18 Thread Cristian Adam via Phabricator via cfe-commits
cristian.adam added a comment.

I do not have commit rights, I need help to submit this patch.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D74564/new/

https://reviews.llvm.org/D74564



___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D119199: replace clang LLVM_ENABLE_PLUGINS -> CLANG_PLUGIN_SUPPORT in tests

2022-02-21 Thread Cristian Adam via Phabricator via cfe-commits
cristian.adam added a comment.

`release/14.x` now configures but fails to build on MSVC2019 with `-D 
LLVM_EXPORT_SYMBOLS_FOR_PLUGINS=ON` like at https://reviews.llvm.org/D00

  FAILED: bin/CTTestTidyModule.dll
  cmd.exe /C "cd . && C:\tools\cmake\bin\cmake.exe -E vs_link_dll 
--intdir=tools\clang\tools\extra\test\CMakeFiles\CTTestTidyModule.dir 
--rc=C:\PROGRA~2\WI3CF2~1\10\bin\100183~1.0\x64\rc.exe 
--mt=C:\PROGRA~2\WI3CF2~1\10\bin\100183~1.0\x64\mt.exe --manifests  -- 
C:\PROGRA~2\MICROS~1\2019\BUILDT~1\VC\Tools\MSVC\1429~1.301\bin\Hostx64\x64\link.exe
 /nologo 
tools\clang\tools\extra\test\CMakeFiles\CTTestTidyModule.dir\clang-tidy\CTTestTidyModule.cpp.obj
  /out:bin\CTTestTidyModule.dll /implib:lib\CTTestTidyModule.lib 
/pdb:bin\CTTestTidyModule.pdb /dll /version:0.0 /machine:x64 /INCREMENTAL:NO  
lib\clang-tidy.lib  kernel32.lib user32.lib gdi32.lib winspool.lib shell32.lib 
ole32.lib oleaut32.lib uuid.lib comdlg32.lib advapi32.lib  && cd ."
  LINK: command 
"C:\PROGRA~2\MICROS~1\2019\BUILDT~1\VC\Tools\MSVC\1429~1.301\bin\Hostx64\x64\link.exe
 /nologo 
tools\clang\tools\extra\test\CMakeFiles\CTTestTidyModule.dir\clang-tidy\CTTestTidyModule.cpp.obj
 /out:bin\CTTestTidyModule.dll /implib:lib\CTTestTidyModule.lib 
/pdb:bin\CTTestTidyModule.pdb /dll /version:0.0 /machine:x64 /INCREMENTAL:NO 
lib\clang-tidy.lib kernel32.lib user32.lib gdi32.lib winspool.lib shell32.lib 
ole32.lib oleaut32.lib uuid.lib comdlg32.lib advapi32.lib /MANIFEST 
/MANIFESTFILE:bin\CTTestTidyModule.dll.manifest" failed (exit code 1120) with 
the following output:
  CTTestTidyModule.cpp.obj : error LNK2001: unresolved external symbol "class 
clang::ast_matchers::internal::VariadicDynCastAllOfMatcher const 
clang::ast_matchers::translationUnitDecl" 
(?translationUnitDecl@ast_matchers@clang@@3V?$VariadicDynCastAllOfMatcher@VDecl@clang@@VTranslationUnitDecl@2@@internal@12@B)
  bin\CTTestTidyModule.dll : fatal error LNK1120: 1 unresolved externals


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D119199/new/

https://reviews.llvm.org/D119199

___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D119199: replace clang LLVM_ENABLE_PLUGINS -> CLANG_PLUGIN_SUPPORT in tests

2022-02-22 Thread Cristian Adam via Phabricator via cfe-commits
cristian.adam added a comment.

In D119199#3337699 , @vtjnash wrote:

> Is that a bug in clang or in MSVC2019? We expected that 
> CLANG_PLUGIN_SUPPORT=ON can expose problems with the Windows linker, and we 
> add new tests here for verifying that configuration is functioning as 
> expected. You might need to disable CLANG_PLUGIN_SUPPORT on that target?

I don't know. I "fixed" it by commenting out the whole creation of the target, 
the same way as the `LLVM_INSTALL_TOOLCHAIN_ONLY` does, which would be the 
other workaround, to just use `LLVM_INSTALL_TOOLCHAIN_ONLY`.

  diff --git a/clang-tools-extra/test/CMakeLists.txt 
b/clang-tools-extra/test/CMakeLists.txt
  index 170e5f8bd197..e8b897893776 100644
  --- a/clang-tools-extra/test/CMakeLists.txt
  +++ b/clang-tools-extra/test/CMakeLists.txt
  @@ -80,6 +80,7 @@ foreach(dep ${LLVM_UTILS_DEPS})
 endif()
   endforeach()
  
  +#[[
   if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
 llvm_add_library(
 CTTestTidyModule
  @@ -106,6 +107,7 @@ if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
 endif()
 endif()
   endif()
  +#]]


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D119199/new/

https://reviews.llvm.org/D119199

___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits