[libclc] [libclc] Use custom CMake handling to overhaul libclc compilation (PR #185247)

Konrad Kleine via cfe-commits cfe-commits at lists.llvm.org
Tue Mar 10 03:08:31 PDT 2026


kwk wrote:

When I (when packaging) build libclc with this patch I see that the targets are directly installed under 

```
/builddir/build/BUILD/llvm-23.0.0_pre20260309.g7c13f88ecc0547-build/BUILDROOT/usr/lib64/llvm23/lib/clang/23/lib/
```

instead of 

```
/builddir/build/BUILD/llvm-23.0.0_pre20260309.g7c13f88ecc0547-build/BUILDROOT/usr/lib64/llvm23/lib/clang/23/lib/libclc
```

like it used to be. Is there a reason for this change? Did it happen with this change or some other? (I cannot bisect in this case.)

Also I think there used to be more files than `libclc.bc`, right?

```
> tree /builddir/build/BUILD/llvm-23.0.0_pre20260309.g7c13f88ecc0547-build/BUILDROOT/usr/lib64/llvm23/lib/clang/23/lib/                                                                                                        
/builddir/build/BUILD/llvm-23.0.0_pre20260309.g7c13f88ecc0547-build/BUILDROOT/usr/lib64/llvm23/lib/clang/23/lib/                                                                                                                                                        
├── amdgcn--                                                                                                                                                                                                                                                            
│   └── libclc.bc                                                                                                                                                                                                                                                       
├── amdgcn-amd-amdhsa-llvm                                                                                                                                                                                                                                              
│   └── libclc.bc                                                                                                                                                                                                                                                       
├── amdgcn-mesa-mesa3d                                                                                                                                                                                                                                                  
│   └── libclc.bc                                                                                                                                                                                                                                                       
├── nvptx64--                                                                                                                                                                                                                                                           
│   └── libclc.bc                                                                                                                                                                                                                                                       
├── nvptx64--nvidiacl                                                                                                                                                                                                                                                   
│   └── libclc.bc                                                                                                                                                                                                                                                       
├── nvptx64-nvidia-cuda                                                                                                                                                                                                                                                 
│   └── libclc.bc                                                                                                                                                                                                                                                       
├── spir--                                                                                                                                                                                                                                                              
│   └── libclc.bc                                                                                                                                                                                                                                                       
├── spir64--                                                                                                                                                                                                                                                            
│   └── libclc.bc                                                                                                                                                                                                                                                       
├── spirv32--                                                                                                                                                                                                                                                           
│   └── libclc.spv                                                                                                                                                                                                                                                      
├── spirv64--                                                                                                                                                                                                                                                           
│   └── libclc.spv                                                                                                                                                                                                                                                      
└── x86_64-redhat-linux-gnu                                                                                                                                                                                                                                             
    ├── clang_rt.crtbegin.o                                                                                                                                                                                                                                             
    ├── clang_rt.crtend.o
    ├── libclang_rt.asan.a
    ├── libclang_rt.asan.a.syms
    ├── libclang_rt.asan_cxx.a
    ├── libclang_rt.asan_cxx.a.syms
    ├── libclang_rt.asan-preinit.a
    ├── libclang_rt.asan.so
    ├── libclang_rt.asan_static.a
    ├── ...
```

<details><summary>This is what used to be part of our libclc package in fedora:</summary>

```
 > rpm -ql libclc                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 
/usr/lib64/clc/amdgcn--amdhsa.bc                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          
/usr/lib64/clc/aruba-r600--.bc                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            
/usr/lib64/clc/barts-r600--.bc                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            
/usr/lib64/clc/bonaire-amdgcn--.bc                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        
/usr/lib64/clc/bonaire-amdgcn-mesa-mesa3d.bc                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              
/usr/lib64/clc/caicos-r600--.bc                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           
/usr/lib64/clc/carrizo-amdgcn--.bc                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        
/usr/lib64/clc/carrizo-amdgcn-mesa-mesa3d.bc                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              
/usr/lib64/clc/cayman-r600--.bc                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           
/usr/lib64/clc/cedar-r600--.bc                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            
/usr/lib64/clc/clspv--.bc                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 
/usr/lib64/clc/clspv64--.bc                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
/usr/lib64/clc/cypress-r600--.bc                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          
/usr/lib64/clc/fiji-amdgcn--.bc                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           
/usr/lib64/clc/fiji-amdgcn-mesa-mesa3d.bc                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 
/usr/lib64/clc/gfx1010-amdgcn--.bc                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        
/usr/lib64/clc/gfx1010-amdgcn-mesa-mesa3d.bc                                                                                                                                                                                                                            
/usr/lib64/clc/gfx1011-amdgcn--.bc                                                                                                                                                                                                                                      
/usr/lib64/clc/gfx1011-amdgcn-mesa-mesa3d.bc                                                                                                                                                                                                                            
/usr/lib64/clc/gfx1012-amdgcn--.bc                                                                                                                                                                                                                                      
/usr/lib64/clc/gfx1012-amdgcn-mesa-mesa3d.bc                                                                                                                                                                                                                            
/usr/lib64/clc/gfx1013-amdgcn--.bc                                                                                                                                                                                                                                      
/usr/lib64/clc/gfx1013-amdgcn-mesa-mesa3d.bc                                                                                                                                                                                                                            
/usr/lib64/clc/gfx1030-amdgcn--.bc                                                                                                                                                                                                                                      
/usr/lib64/clc/gfx1030-amdgcn-mesa-mesa3d.bc                                                                                                                                                                                                                            
/usr/lib64/clc/gfx1031-amdgcn--.bc                                                                                                                                                                                                                                      
/usr/lib64/clc/gfx1031-amdgcn-mesa-mesa3d.bc                                                                                                                                                                                                                            
/usr/lib64/clc/gfx1032-amdgcn--.bc                                                                                                                                                                                                                                      
/usr/lib64/clc/gfx1032-amdgcn-mesa-mesa3d.bc                                                                                                                                                                                                                            
/usr/lib64/clc/gfx1033-amdgcn--.bc                                                                                                                                                                                                                                      
/usr/lib64/clc/gfx1033-amdgcn-mesa-mesa3d.bc                                                                                                                                                                                                                            
/usr/lib64/clc/gfx1034-amdgcn--.bc                                                                                                                                                                                                                                      
/usr/lib64/clc/gfx1034-amdgcn-mesa-mesa3d.bc                                                                                                                                                                                                                            
/usr/lib64/clc/gfx1035-amdgcn--.bc                                                                                                                                                                                                                                      
/usr/lib64/clc/gfx1035-amdgcn-mesa-mesa3d.bc                                                                                                                                                                                                                            
/usr/lib64/clc/gfx1036-amdgcn--.bc                                                                                                                                                                                                                                      
/usr/lib64/clc/gfx1036-amdgcn-mesa-mesa3d.bc                                                                                                                                                                                                                            
/usr/lib64/clc/gfx1100-amdgcn--.bc                                                                                                                                                                                                                                      
/usr/lib64/clc/gfx1100-amdgcn-mesa-mesa3d.bc                                                                                                                                                                                                                            
/usr/lib64/clc/gfx1101-amdgcn--.bc                                                                                                                                                                                                                                      
/usr/lib64/clc/gfx1101-amdgcn-mesa-mesa3d.bc                                                                                                                                                                                                                            
/usr/lib64/clc/gfx1102-amdgcn--.bc                                                                                                                                                                                                                                      
/usr/lib64/clc/gfx1102-amdgcn-mesa-mesa3d.bc                                                                                                                                                                                                                            
/usr/lib64/clc/gfx1103-amdgcn--.bc                                                                                                                                                                                                                                      
/usr/lib64/clc/gfx1103-amdgcn-mesa-mesa3d.bc                                                                                                                                                                                                                            
/usr/lib64/clc/gfx1150-amdgcn--.bc                                                                                                                                                                                                                                      
/usr/lib64/clc/gfx1150-amdgcn-mesa-mesa3d.bc                                                                                                                                                                                                                            
/usr/lib64/clc/gfx1151-amdgcn--.bc                                                                                                                                                                                                                                      
/usr/lib64/clc/gfx1151-amdgcn-mesa-mesa3d.bc                                                                                                                                                                                                                            
/usr/lib64/clc/gfx1152-amdgcn--.bc                                                                                                                                                                                                                                      
/usr/lib64/clc/gfx1152-amdgcn-mesa-mesa3d.bc                                                                                                                                                                                                                            
/usr/lib64/clc/gfx1153-amdgcn--.bc                                                                                                                                                                                                                                      
/usr/lib64/clc/gfx1153-amdgcn-mesa-mesa3d.bc
/usr/lib64/clc/gfx1200-amdgcn--.bc         
/usr/lib64/clc/gfx1200-amdgcn-mesa-mesa3d.bc
/usr/lib64/clc/gfx1201-amdgcn--.bc         
/usr/lib64/clc/gfx1201-amdgcn-mesa-mesa3d.bc
/usr/lib64/clc/gfx602-amdgcn--.bc          
/usr/lib64/clc/gfx602-amdgcn-mesa-mesa3d.bc 
/usr/lib64/clc/gfx705-amdgcn--.bc          
/usr/lib64/clc/gfx705-amdgcn-mesa-mesa3d.bc  
/usr/lib64/clc/gfx805-amdgcn--.bc          
/usr/lib64/clc/gfx805-amdgcn-mesa-mesa3d.bc   
/usr/lib64/clc/gfx900-amdgcn--.bc          
/usr/lib64/clc/gfx900-amdgcn-mesa-mesa3d.bc   
/usr/lib64/clc/gfx902-amdgcn--.bc          
/usr/lib64/clc/gfx902-amdgcn-mesa-mesa3d.bc 
/usr/lib64/clc/gfx904-amdgcn--.bc            
/usr/lib64/clc/gfx904-amdgcn-mesa-mesa3d.bc 
/usr/lib64/clc/gfx906-amdgcn--.bc             
/usr/lib64/clc/gfx906-amdgcn-mesa-mesa3d.bc 
/usr/lib64/clc/gfx908-amdgcn--.bc             
/usr/lib64/clc/gfx908-amdgcn-mesa-mesa3d.bc
/usr/lib64/clc/gfx909-amdgcn--.bc          
/usr/lib64/clc/gfx909-amdgcn-mesa-mesa3d.bc
/usr/lib64/clc/gfx90a-amdgcn--.bc            
/usr/lib64/clc/gfx90a-amdgcn-mesa-mesa3d.bc
/usr/lib64/clc/gfx90c-amdgcn--.bc                                            
/usr/lib64/clc/gfx90c-amdgcn-mesa-mesa3d.bc                                  
/usr/lib64/clc/gfx940-amdgcn--.bc                                            
/usr/lib64/clc/gfx940-amdgcn-mesa-mesa3d.bc                                  
/usr/lib64/clc/gfx941-amdgcn--.bc                                            
/usr/lib64/clc/gfx941-amdgcn-mesa-mesa3d.bc                                  
/usr/lib64/clc/gfx942-amdgcn--.bc                                            
/usr/lib64/clc/gfx942-amdgcn-mesa-mesa3d.bc                                  
/usr/lib64/clc/hainan-amdgcn--.bc                                            
/usr/lib64/clc/hainan-amdgcn-mesa-mesa3d.bc                                  
/usr/lib64/clc/hawaii-amdgcn--.bc                                            
/usr/lib64/clc/hawaii-amdgcn-mesa-mesa3d.bc                                  
/usr/lib64/clc/hemlock-r600--.bc                                             
/usr/lib64/clc/iceland-amdgcn--.bc                                           
/usr/lib64/clc/iceland-amdgcn-mesa-mesa3d.bc                                                                        
/usr/lib64/clc/juniper-r600--.bc                                             
/usr/lib64/clc/kabini-amdgcn--.bc                                                                                   
/usr/lib64/clc/kabini-amdgcn-mesa-mesa3d.bc                                                                         
/usr/lib64/clc/kaveri-amdgcn--.bc                                                                                   
/usr/lib64/clc/kaveri-amdgcn-mesa-mesa3d.bc                                                                         
/usr/lib64/clc/mullins-amdgcn--.bc                                                                                  
/usr/lib64/clc/mullins-amdgcn-mesa-mesa3d.bc                                                                        
/usr/lib64/clc/nvptx--.bc                                                                                           
/usr/lib64/clc/nvptx--nvidiacl.bc                                                                                   
/usr/lib64/clc/nvptx64--.bc                  
/usr/lib64/clc/oland-amdgcn--.bc
/usr/lib64/clc/oland-amdgcn-mesa-mesa3d.bc
/usr/lib64/clc/palm-r600--.bc
/usr/lib64/clc/pitcairn-amdgcn--.bc
/usr/lib64/clc/pitcairn-amdgcn-mesa-mesa3d.bc
/usr/lib64/clc/polaris10-amdgcn--.bc
/usr/lib64/clc/polaris10-amdgcn-mesa-mesa3d.bc
/usr/lib64/clc/polaris11-amdgcn--.bc
/usr/lib64/clc/polaris11-amdgcn-mesa-mesa3d.bc
/usr/lib64/clc/redwood-r600--.bc
/usr/lib64/clc/stoney-amdgcn--.bc
/usr/lib64/clc/stoney-amdgcn-mesa-mesa3d.bc
/usr/lib64/clc/sumo-r600--.bc
/usr/lib64/clc/sumo2-r600--.bc
/usr/lib64/clc/tahiti-amdgcn--.bc
/usr/lib64/clc/tahiti-amdgcn-mesa-mesa3d.bc
/usr/lib64/clc/tonga-amdgcn--.bc
/usr/lib64/clc/tonga-amdgcn-mesa-mesa3d.bc
/usr/lib64/clc/tongapro-amdgcn--.bc
/usr/lib64/clc/tongapro-amdgcn-mesa-mesa3d.bc
/usr/lib64/clc/turks-r600--.bc
/usr/lib64/clc/verde-amdgcn--.bc
/usr/lib64/clc/verde-amdgcn-mesa-mesa3d.bc
/usr/share/doc/libclc
/usr/share/doc/libclc/CREDITS.TXT
/usr/share/doc/libclc/README.md
/usr/share/licenses/libclc
/usr/share/licenses/libclc/LICENSE.TXT
```
</details>

https://github.com/llvm/llvm-project/pull/185247


More information about the cfe-commits mailing list