kikairoya wrote:

I'm thinking about each DLLs:

- libLLVM:
  - On Linux:
    `libLLVM.so`(symlink) and `libLLVM.so.21.0git` are built and installed.
    `libLLVM-21git.so`(symlink) is installed but doesn't appear in build-tree.
  - On Cygwin:
    Only `libLLVM-21git.dll.a` and `cygLLVM-21git.dll` are built and installed.
    It might be better to make them symlinks and provide `libLLVM.dll.a` and 
`cygLLVM-21.0git.dll` as their link targets for consistency with other DLLs. 
These symlinks may be install-only targets.
    `llvm-config` should print `-lLLVM-21git` as ever for consistency with 
other Platforms.
    Additionally, installing a symlink `cygLLVM.dll` is convenient for dlopen.
- libclang:
  - On Linux: 
    `libclang.so`(symlink), `libclang.so.21.0git`(symlink) and 
`libclang.so.21.0.0git` are built and installed.
  - On Cygwin:
    Only `libclang.dll.a` and `cygclang-21.0git.dll` are built and installed.
    `cygclang.dll`(maybe a symlink) is needed for `check-clang-python` so it 
must be built in build-tree.
    This is the first motivation for this PR.
- Other C libraries (e.g. Remarks):
  - On Linux:
    `libRemarks.so`(symlink) and `libRemarks.so.21.0git` are built and 
installed.
  - On Cygwin:
    `libRemarks.dll.a` and `cygRemarks-21.0git.dll` are built and installed.
    Additionally, installing a symlink `cygRemarks.dll` is convenient for 
dlopen.
- Other DLLs without C interface (libclang-cpp):
  - On Linux:
    `libclang-cpp.so`(symlink) and `libclang-cpp.so.21.0git` are built and 
installed.
  - On Cygwin:
    `libclang-cpp.dll.a` and `cygclang-cpp-21.0git.dll` are built and installed.
    This DLL won't use with dlopen since it have no C interface but installing 
symlink `cygclang-cpp.dll` as other DLLs isn't worse.

I had focused to make a symlink `cygclang.dll` but it could be applied to all 
other DLLs. 
Also, I can make `libLLVM-21git.dll.a` a symlink to `libLLVM.dll.a` and make 
`cygLLVM-21git.dll` a symlink to `cygLLVM-21.0git.dll`.

So, installed-tree will be:
- bin/
  - `cygclang.dll`@ -> `cygclang-21.0git.dll`
  - `cygclang-21.0git.dll`
  - `cygclang-cpp.dll`@ -> `cygclang-cpp-21.0git.dll` (may be omitted)
  - `cygclang-cpp-21.0git.dll`
  - `cygLLVM.dll`@ -> `cygLLVM-21.0git.dll`
  - `cygLLVM-21git.dll`@ -> `cygLLVM-21.0git.dll` (may not appear in build-tree)
  - `cygLLVM-21.0git.dll`
  - `cygRemarks.dll`@ -> `cygRemarks-21.0git.dll`
  - `cygRemarks-21.0git.dll`
- lib/
  - `libclang.dll.a`
  - `libclang-cpp.dll.a`
  - `libLLVM.dll.a`
  - `libLLVM-21git.dll.a`@ -> `libLLVM.dll.a` (may not appear in build-tree)
  - `libRemarks.dll.a`

I would like to know if there are any concerns to do this.

https://github.com/llvm/llvm-project/pull/147132
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to