diff --git "a/.images/\345\276\256\344\277\241QR.png" "b/.images/\345\276\256\344\277\241QR.png"
deleted file mode 100644
index a8ae48b4f8b9cb24707cfd2f5d644a754b4ee847..0000000000000000000000000000000000000000
Binary files "a/.images/\345\276\256\344\277\241QR.png" and /dev/null differ
diff --git a/Compiler Features/BiShengJDK/.keep b/Compiler Features/BiShengJDK/.keep
deleted file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000
diff --git a/Compiler Features/GCC/.keep b/Compiler Features/GCC/.keep
deleted file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000
diff --git a/Compiler Features/LLVM/.keep b/Compiler Features/LLVM/.keep
deleted file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000
diff --git "a/Compiler SIG \350\275\257\344\273\266\345\214\205\351\200\211\345\236\213\345\237\272\347\272\277.md" "b/Compiler SIG \350\275\257\344\273\266\345\214\205\351\200\211\345\236\213\345\237\272\347\272\277.md"
deleted file mode 100644
index 2ff4077075bdbc3f9abf2395d6437b965554fbc9..0000000000000000000000000000000000000000
--- "a/Compiler SIG \350\275\257\344\273\266\345\214\205\351\200\211\345\236\213\345\237\272\347\272\277.md"
+++ /dev/null
@@ -1,40 +0,0 @@
-
-### 背景
-openEuler 24.03 LTS是基于6.6内核的长周期LTS版本,面向服务器、云、边缘计算、AI和嵌入式场景,提供更多新特性和功能,给开发者和用户带来全新的体验,服务更多的领域和更多的用户,将于5月底正式发布。
-
-### 24.03 LTS版本
-#### Compiler SIG软件包选型版本
-| 序号 | 软件包 | 版本号 |
-|-----|------------------------|--------------|
-| 1 | openjdk-1.8.0 | 8u402 |
-| 2 | openjdk-11 | 11.0.22 |
-| 3 | openjdk-17 | 17.0.10 |
-| 4 | openjdk-21 | 21.0.2 |
-| 5 | spirv-llvm-translator | 17.0.0 |
-| 6 | compiler-rt | 17.0.6|
-| 7 | clang | 17.0.6|
-| 8 | llvm-bolt | 17.0.6|
-| 9 | llvm-libunwind | 17.0.6|
-| 10 | lld | 17.0.6|
-| 11 | libcxx | 17.0.6|
-| 12 | libcxxabi | 17.0.6|
-| 13 | openmp | 17.0.6|
-| 14 | lldb | 17.0.6|
-| 15 | flang | 17.0.6|
-| 16 | llvm-mlir | 17.0.6|
-| 17 | gcc | 12.3.0 |
-| 18 | binutils | 2.41 |
-| 19 | gcc-7 | 7.3.0 |
-| 20 | gcc-cross | 1.0 |
-| 21 | A-FOT | 1.0 |
-| 22 | autofdo | 0.19|
-| 23 | Bear | 3.0.20 |
-| 24 | pin-gcc-client | 0.4.1 |
-| 25 | pin-server | 0.4.0 |
-| 26 | openjfx8 | 8u370 |
-| 27 | openjfx11 | 11.0.18.0 |
-| 30 | ccache | 4.8.3 |
-| 31 | classic-flang | |
-| 32 | gn | 1.0.0 |
-| 33 | tinytoml | 0.4 |
-| 34 | optimized-routines | 24.01 |
\ No newline at end of file
diff --git a/LLVM Parallel Universe Project/.images/OBS-branch-package.jpg b/LLVM Parallel Universe Project/.images/OBS-branch-package.jpg
deleted file mode 100644
index a7aa01d5ecd144292aadb028f12931c8242d21ec..0000000000000000000000000000000000000000
Binary files a/LLVM Parallel Universe Project/.images/OBS-branch-package.jpg and /dev/null differ
diff --git a/LLVM Parallel Universe Project/.images/OBS-change-package-address-1.jpg b/LLVM Parallel Universe Project/.images/OBS-change-package-address-1.jpg
deleted file mode 100644
index 2a022674ad1c97ccf95e05a4c0c684bcac00ffa5..0000000000000000000000000000000000000000
Binary files a/LLVM Parallel Universe Project/.images/OBS-change-package-address-1.jpg and /dev/null differ
diff --git a/LLVM Parallel Universe Project/.images/OBS-change-package-address-2.jpg b/LLVM Parallel Universe Project/.images/OBS-change-package-address-2.jpg
deleted file mode 100644
index 838426e4315707c99cc4957ff8a88fbfa5d9e97d..0000000000000000000000000000000000000000
Binary files a/LLVM Parallel Universe Project/.images/OBS-change-package-address-2.jpg and /dev/null differ
diff --git a/LLVM Parallel Universe Project/.images/OBS-trigger-rebuild.jpg b/LLVM Parallel Universe Project/.images/OBS-trigger-rebuild.jpg
deleted file mode 100644
index 99a2e16a9ec67c0cba09c583c481194ae58fa0b6..0000000000000000000000000000000000000000
Binary files a/LLVM Parallel Universe Project/.images/OBS-trigger-rebuild.jpg and /dev/null differ
diff --git "a/LLVM Parallel Universe Project/LLVM\346\236\204\345\273\272openEuler\346\212\200\346\234\257\347\231\275\347\232\256\344\271\246.md" "b/LLVM Parallel Universe Project/LLVM\346\236\204\345\273\272openEuler\346\212\200\346\234\257\347\231\275\347\232\256\344\271\246.md"
deleted file mode 100644
index 54c29b5f35c687d6f0e47f426bfabe30f40ffc88..0000000000000000000000000000000000000000
--- "a/LLVM Parallel Universe Project/LLVM\346\236\204\345\273\272openEuler\346\212\200\346\234\257\347\231\275\347\232\256\344\271\246.md"
+++ /dev/null
@@ -1,180 +0,0 @@
-# LLVM构建openEuler技术白皮书
-## 1、简介
-## 2、LLVM编译器工具链介绍
-[LLVM项目](https://llvm.org/)是一个[开源的编译器基础设施项目](https://github.com/llvm/llvm-project),它提供了一套用于编译程序的工具链和库。近年来,LLVM项目越来越得到开发者的关注,社区非常活跃,商业公司纷纷基于LLVM项目推出商业编译器,OS社区也积极拥抱LLVM技术栈。[openEuler社区上的LLVM项目](https://gitee.com/openeuler/llvm-project)作为一个下游项目,致力于在开源LLVM基础上与openEuler协同创新,包括兼容性、性能和开发态安全编码特性,为openEuler上的编译器提供第二选择,并适配多种硬件平台,如鲲鹏、飞腾、龙芯等,充分释放多样性硬件算力。
-### 2.1、LLVM架构描述
-LLVM采用了模块化架构设计,将编译过程分为多个独立阶段,如前端、优化和后端。这种设计使得LLVM更加灵活和可扩展,有助于各阶段模块分别演进创新,而通过统一的IR表示又将不同的模块有机的结合起来。目前LLVM项目包含多个子项目,如clang、flang、llvm、mlir、lld等。LLVM 9.0版本之后采取Apache License。
-
-
-
-

-
-
-图1 LLVM架构:模块化解耦架构,统一IR表示,助力架构级创新
-
-### 2.2、LLVM子项目简介
-LLVM是一个伞形项目,包含模块化和可重复使用的编译器和工具链技术的集合。
-LLVM的主要子项目有:
-* LLVM Core:LLVM核心库提供了一个现代的独立于源码和目标的优化器,以及对许多主流CPU的代码生成支持。
-* Clang:LLVM原生的C-family语言编译器。
-* LLDB:构建在LLVM和Clang提供的库之上,以提供一个出色的原生调试器。
-* libc++和libc++ ABI:提供一个符合标准且高性能的C++标准库实现。
-* compiler-rt:编译器运行时库,包含一些低级别的代码生成的支持函数,也为动态测试工具提供运行时库。
-* MLIR:一种构建可重用和可扩展编译器基础设施的新方法。
-* OpenMP:提供了一个OpenMP运行时实现。
-* polly:使用多面体模型实现了一系列Cache局部性优化以及自动并行和矢量化优化。
-* libclc:OpenCL标准库的一个实现。
-* klee:符号执行虚拟机的一个实现。
-* LLD:LLVM原生链接器。
-* BOLT:后链接优化器,通过优化应用程序的代码布局来达成优化效果。
-
-### 2.3、基于Clang组装一个完整工具链
-本章节参考[Assembling a Complete Toolchain](https://clang.llvm.org/docs/Toolchain.html)。
-Clang只是C-family编程语言完整工具链中的一个组件。为了组装一个完整的工具链,需要额外的工具和运行时库。Clang被设计为与用于其目标平台的现有工具和库进行交互操作,并且LLVM项目为许多这些组件提供了替代方案。
-下面描述类POSIX操作系统(如linux)上的Clang配置。
-#### 2.3.1、工具
-C-family编程语言的完整编译通常涉及以下工具:
-* 预处理器(Preprocessor)
- * 执行 C 预处理器的操作:展开#include和#defines。
-* 解析(Parsing)
- * 根据输入,解析和语义分析源语言,并构建一个源代码级中间表示(“AST”)。
-* IR生成(IR generation)
- * 将源代码级中间表示转换为一个特定于优化器(optimizer)的中间表示(IR),即LLVM IR。
-* 编译器后端(Compiler backend)
- * 将中间表示转换为特定于目标的汇编代码。
-* 汇编器(Assembler)
- * 将特定于目标的汇编代码转换为特定于目标的机器码目标文件。
-* 链接器(Linker)
- * 将多个目标文件组合成一个映像(一个共享对象或一个可执行文件)。
-
-Clang提供了除链接器之外的所有这些部分。当同一工具执行多个步骤时,通常将这些步骤合并在一起,以避免创建中间文件。
-#### 2.3.2、Clang前端
-Clang前端(clang -cc1)用于编译C-family语言。Clang前端的命令行接口被视为实现细节,故没有外部文档,并且可以在提示的情况下进行更改。
-#### 2.3.3、汇编器
-Clang既可以使用LLVM项目的集成汇编器,也可以使用外部特定于系统的汇编器(例如,GNU操作系统上的 GNU汇编器),作用是从汇编代码生成机器码。默认情况下,Clang在支持LLVM的所有目标机器上使用 LLVM的集成汇编器。如果想使用特定系统的汇编器,请使用`-fno-integrated-as`选项。
-#### 2.3.4、链接器
-Clang可以配置为使用几个不同的链接器其中一个:
-* GNU ld
-* GNU gold
-* LLVM lld
-* MSVC link.exe
-
-[LLVM lld](https://lld.llvm.org/)原生支持链接时优化,使用gold时通过一个[链接器插件](https://llvm.org/docs/GoldPlugin.html)支持链接时优化。默认链接器在不同的目标机器上是不同的,可以通过`-fuse-ld=`标志来切换。
-#### 2.3.5、运行时库
-C-family程序需要许多不同的运行时库提供不同的支持。Clang将隐式地链接每个运行时库的合适实现。
-##### 2.3.5.1、编译器运行时
-编译器运行时库提供编译器隐式调用的函数的定义,以支持底层硬件不支持的操作(例如,128位整数乘法),或用在某些操作不适合用编译器内部实现的地方。
-默认的运行时库是特定于目标架构的。对于GCC是主要编译器的目标,目前默认使用`libgcc_s`。在大多数其他目标上,默认情况下使用`compiler-rt`。
-* compiler-rt (LLVM): [LLVM项目的编译器运行时库](https://compiler-rt.llvm.org/)提供了一组完整的运行时库函数。
-* libgcc_s (GNU):[GCC编译器的运行时库](https://gcc.gnu.org/onlinedocs/gccint/Libgcc.html)可以用来代替`compiler-rt`。但是,它缺少几个LLVM可能调用的函数,特别是在使用Clang的内置函数家族的`__builtin_*_overflow`时。
-
-可以通过`--rtlib=compiler-rt`或`--rtlib=libgcc`来切换编译器运行时库。
-##### 2.3.5.2、原子库
-如果您的程序使用了原子操作,编译器无法直接翻译到机器指令(因为没有合适的机器指令或不知道操作数如何适当对齐),将会生成对运行时库__atomic_*函数的调用。这些程序需要一个包含这些原子函数的运行时库。
-* compiler-rt (LLVM):LLVM项目的原子库的实现包含在`compiler-rt`中。
-* libatomic (GNU):libgcc_s不提供原子库的实现,事实上,GCC的[libatomic library](https://gcc.gnu.org/wiki/Atomic/GCCMM)在使用libgcc_s时被提供。
-> 注意:
-> 当Clang使用libgcc_s时,目前不会自动链接到`libatomic`。在使用非`compiler-rt`提供的原子操作时(如果您看到引用了__atomic_*函数的链接错误),可能需要手动添加`-latomic`来支持这种配置。
-##### 2.3.5.3、Unwind库
-Unwind库提供了一系列`_Unwind_*`函数,实现了`Itanium C++ ABI`([第I级](https://itanium-cxx-abi.github.io/cxx-abi/abi-eh.html#base-abi))的语言无关的堆栈Unwind操作部分,它是`C++ ABI`库的依赖项,有时是其他运行时的依赖项。
-* libunwind (LLVM):LLVM项目的Unwind库一种实现。
-* libgcc_s (GNU):libgcc_s有一个集成的Unwinder,不需要提供外部的Unwind库。
-* libunwind (nongnu.org):这是Unwind规范的另一个实现。请参阅[libunwind(nongnu.org)](https://www.nongnu.org/libunwind/)。
-* libunwind (PathScale): 这是Unwind规范的另一个实现。请参阅[libunwind (pathscale)](https://github.com/pathscale/libunwind)。
-##### 2.3.5.4、Sanitizer运行时库
-Clang的sanitizers (-fsanitize=…)隐式地调用一个运行时库,以便维护程序执行的状态,并在检测到问题时发出诊断消息。
-这些运行时的唯一支持实现由 LLVM 的compiler-rt提供。
-#### 2.3.6、C标准库
-Clang支持多种[C标准库实现](https://en.cppreference.com/w/c)。
-#### 2.3.7、C++标准库
-Clang支持使用LLVM项目的`libc++`或GCC的`libstdc++`C++标准库实现。
-* libc++ (LLVM):[libc++](https://libcxx.llvm.org/)是LLVM项目的C++标准库实现,旨在从C++ 11开始成为全面的C++标准实现。
-* libstdc++ (GNU):[libstdc++](https://gcc.gnu.org/onlinedocs/libstdc++/)是GCC 的C++标准库实现,Clang支持各种版本的`libstdc++`。
-
-您可以通过`-stdlib=libc++`或`-stdlib=libstdc++`选项来切换C++标准库。
-
-#### 2.3.8、C++ ABI库
-C++ ABI库提供了Itanium C++ ABI库部分的实现,包括[Itanium c++ ABI文档中的支持功能](https://itanium-cxx-abi.github.io/cxx-abi/abi.html)和[异常处理支持的Level II](https://itanium-cxx-abi.github.io/cxx-abi/abi-eh.html#cxx-abi)。在编译C++代码时,Clang隐式地生成对这个库中函数和对象的引用。
-> 注意
-> 虽然同一个程序可能同时使用libstdc++和libc++(只要您不试图将C++标准库对象传递到边界之外),但是在一个程序中通常不可能有一个以上的C++ABI库。
-
-* libc++ abi (LLVM):[libc++abi](https://libcxxabi.llvm.org/)是LLVM项目对该规范的实现。
-* libsupc++ (GNU):libsupc++是GCC对该规范的实现。但是,只有在静态链接libstdc++时才使用这个库。libstdc++的动态库版本包含libsupc++的一个副本。
-* libcxxrt (PathScale):这是Itanium C++ ABI规范的另一个实现。
-
-## 3、LLVM平行宇宙计划
-23年3月份,软件所OERV团队和华为毕昇编译器团队在RISCV SIG和Compiler SIG联合在社区发起“LLVM平行宇宙计划”。该项目旨在通过社区化的方式推动LLVM工具链在openEuler社区的应用,包括构建openEuler系统。
-
-### 3.1、计划描述
-该计划已提交[oEEP](https://gitee.com/openeuler/TC/blob/master/oEEP/oEEP-0003%20LLVM%E5%B9%B3%E8%A1%8C%E5%AE%87%E5%AE%99%E8%AE%A1%E5%88%92--%E5%9F%BA%E4%BA%8ELLVM%E6%8A%80%E6%9C%AF%E6%A0%88%E6%9E%84%E5%BB%BAoE%E8%BD%AF%E4%BB%B6%E5%8C%85.md),目前该oEEP状态处于`初始化`状态。
-
-
-
-

-
-
-图2 LLVM平行宇宙计划推进策略。
-
-通过社区协作的方式推进两个策略:
-* **版本**:通过版本化构建,一方面厘清工作边界,另一方面可以让开发者、使用者对LLVM平行宇宙计划更加有信心。实际操作过程中可以通过“Preview版本”、“平行版本”、“正式版本”的方式循序渐进,形成一个“开发->发布->使用->问题反馈”的良性循环。
-* **长效机制**:与Compass-CI结合,构建upstream测试,解决软件包版本升级后需要重复解决LLVM构建&运行问题,同时有效的卷入上游开发者贡献,达成LLVM原生构建、构建结果可视化的目的,增强开发者、使用者信心。
-
-### 3.2、价值与意义
-该计划致力于推动LLVM工具链在openEuler社区的应用,以获取如下收益:
-* 助力openEuler开箱竞争力更优。
-(1)协同openEuler使能更多高级优化,提升开箱性能、降低镜像体积。
-(2)代码静态&动态检查,提升openEuler社区代码质量,提升可靠性和安全性。
-* 助力openEuler繁荣生态。
-(1)支持仓颉/Rust等多种语言对接,繁荣openEuler社区开发者数量。
-(2)AI&异构支持,助力openEuler支持多样性算力生态。
-(3)支持LLVM社区开发者无缝对接openEuler,促进openEuler竞争力和生态创新。
-
-## 4、技术方案
-### 4.1、openEuler软件包构建方式
-openEuler软件包非常丰富,可以分为内核态软件包(南向)和用户态软件包(北向)。截止24.03 LTS版本,用户态软件包有3.6W+,而且仍在不断增加中。
-当前(24.03 LTS之前),openEuler软件包默认的构建编译器是GNU工具链。
-
-### 4.2、备选技术方案可行性分析
-[Clang编译器](https://clang.llvm.org/)的一个设计需求是兼容GCC,所以理论上是可以替换GCC而构建不同的软件包。不过,Clang编译器作为一个后发者,存在一些软件包无法直接构建通过的情况,基于这个前提,软件包切换构建编译器有如下两个维度需要考虑:
-* Clang构建软件包的范围。不同的版本上构建的软件包范围有哪些?
-* Clang工具链的组件如何选择。参考2.3章节的描述组装一个完整的工具链。
-#### 4.2.1、备选方案一
-方案描述:openEuler**全部的软件包**基于Clang构建,Clang编译器工具链**全部选用LLVM原生的组件**。
-方案可行性分析:openEuler存在大量软件包(3.6W+),同时存在个别软件包暂无法直接基于Clang构建(如glibc)。
-方案结论:短期内不可行。
-
-#### 4.2.2、备选方案二
-方案描述:openEuler**部分软件包**基于Clang构建,Clang编译器工具链**全部选用LLVM原生的组件**。
-方案可行性分析:基于2.3.8章节“注意”部分的描述,如果一个程序同时使用libstdc++和libc++时,必须非常小心地处理两个标准库的应用边界。更有甚者,一个程序中不允许同时存在两个C++ABI库。
-方案结论:存在GCC和Clang混合使用的情况下,该方案不可行。
-
-#### 4.2.3、备选方案三
-方案描述:openEuler**部分软件包**基于Clang构建,Clang编译器工具链采用`Clang+llvm+lld+GNU运行时库`组合。
-方案可行性分析:GCC和Clang混合构建,此方案也是业界目前已采用的方案,是Clang编译器的实际应用场景。
-方案结论:方案总体是可行的,需要进一步进行白盒分析和黑盒验证。
-
-#### 4.2.4、kernel态软件包
-内核态的软件包相对用户态特殊,内核态软件包包含kernel及会构建出`.ko`的软件包。根据[Linux内核驱动接口](https://www.kernel.org/doc/html/latest/process/stable-api-nonsense.html)描述了两个概念:内核二进制接口和内核源码接口
-对于内核源码接口,文章中进行了非常详尽的阐述,这里不赘述。
-我们这里需要考虑的是内核二进制接口,因为不管是GCC还是Clang构建,我们首先要保证源码的一致性,所以源码接口应该是一致的。关于内核二进制接口,文章中有如下描述:
-> Assuming that we had a stable kernel source interface for the kernel, a binary interface would naturally happen too, right? Wrong. Please consider the following facts about the Linux kernel:
->
-> * Depending on the version of the C compiler you use, different kernel data structures will contain different alignment of structures, and possibly include different functions in different ways (putting functions inline or not.) The individual function organization isn’t that important, but the different data structure padding is very important.
-
-即,当使用不同编译器的(甚至不同编译器版本)的情况,会出现二进制不兼容的情况,这是因为kernel中可能会用到C语言不可移植的特性(如变成数组)。值得欣慰的是,近些年[ClangBuiltLinux项目](https://clangbuiltlinux.github.io/)解决了这些问题。但使用不同的编译器版本构建kernel,仍可能会导致KABI不一致。
-综上所述,较好的方案是用同一个编译器(版本)构建整个kernel态软件包。
-
-### 4.3 建议技术方案
-Kernel态使用LLVM构建,用户态软件包采用GCC和LLVM混编。
-编译器组件采用Clang+llvm+llvm as+lld+GNU运行时库的方案。
-
-
-
-

-
-
-图3 LLVM构建openEuler软件包技术方案。
-
-## 5、关键技术挑战
-## 6、应用场景
-## 7、展望
diff --git "a/LLVM Parallel Universe Project/images/LLVM\345\271\263\350\241\214\345\256\207\345\256\231\350\256\241\345\210\222\346\216\250\350\277\233\347\255\226\347\225\245.png" "b/LLVM Parallel Universe Project/images/LLVM\345\271\263\350\241\214\345\256\207\345\256\231\350\256\241\345\210\222\346\216\250\350\277\233\347\255\226\347\225\245.png"
deleted file mode 100644
index 9ec83c5e54ec35daa5fd3ff59f49621bf42babd3..0000000000000000000000000000000000000000
Binary files "a/LLVM Parallel Universe Project/images/LLVM\345\271\263\350\241\214\345\256\207\345\256\231\350\256\241\345\210\222\346\216\250\350\277\233\347\255\226\347\225\245.png" and /dev/null differ
diff --git "a/LLVM Parallel Universe Project/images/LLVM\346\236\266\346\236\204.png" "b/LLVM Parallel Universe Project/images/LLVM\346\236\266\346\236\204.png"
deleted file mode 100644
index db59e7d8a25c9e481d7df6ec27db8a707e45a3fe..0000000000000000000000000000000000000000
Binary files "a/LLVM Parallel Universe Project/images/LLVM\346\236\266\346\236\204.png" and /dev/null differ
diff --git "a/LLVM Parallel Universe Project/images/\346\212\200\346\234\257\346\226\271\346\241\210.png" "b/LLVM Parallel Universe Project/images/\346\212\200\346\234\257\346\226\271\346\241\210.png"
deleted file mode 100644
index 58d716c12665c436ac2a8cfcd402396d419d706c..0000000000000000000000000000000000000000
Binary files "a/LLVM Parallel Universe Project/images/\346\212\200\346\234\257\346\226\271\346\241\210.png" and /dev/null differ
diff --git "a/LLVM Parallel Universe Project/\345\217\202\344\270\216\350\264\241\347\214\256\346\214\207\345\257\274.md" "b/LLVM Parallel Universe Project/\345\217\202\344\270\216\350\264\241\347\214\256\346\214\207\345\257\274.md"
deleted file mode 100644
index 624cb0eeaf14db1a404c68c59aa1d619ff6b2849..0000000000000000000000000000000000000000
--- "a/LLVM Parallel Universe Project/\345\217\202\344\270\216\350\264\241\347\214\256\346\214\207\345\257\274.md"
+++ /dev/null
@@ -1,153 +0,0 @@
-## 参与LLVM平行宇宙计划指导
-首先,欢迎您关注并有意愿参与贡献,相信我们正在一起做一项伟大事业!
-
-### 1、范围介绍
-本文主要涉及兼容性问题修复工作的原则和指导。其他如工程构建、问题列表跟踪等请参考[LLVM平行宇宙计划共享文档](https://docs.qq.com/doc/DZG9yRHJ3WlNvUGV2)。
-
-### 1、软件包构建问题修复原则
-总体上,问题修复秉持**Upstream first**原则,主要原因如下:
-* openEuler作为软件包的下游社区,测试能力有限,很难完成对软件包源码修改的全面测试。
-* 在上游社区修改问题是在源头解决问题,可以避免在openEuler的后续版本多次修改。
-* 在上游社区修改问题可以帮助提升开发者的能力和影响力。
-
-修复流程具体见下图:
-```mermaid
-flowchart TD
-
- A[分析错误原因] --> B{源码问题}
- B -->|否| D[修改spec脚本]
- B -->|是| C{上游社区是否解决}
- D -->D1[提交PR到oE--草稿状态]--> D2[平行宇宙committer检视并获得两个lgtm] -->D3[取消草稿状态]
- D3--> D4[软件包commiter检视&合入] --> D5[结束]
- C -->|是| E1[回合到oE --草稿状态]-->E2[双重检视&合入] --> E3[结束]
- C -->|否| F1[提交PR到中间仓]
- F1 --> F2[平行宇宙committer检视并获得两个lgtm] --> F3[提交PR到上游社区]
- F3 --> F4[回合到oE--草稿状态] --> F5[双重检视&合入]--> F6[结束]
-```
-注:
-双重检视&合入是指:【平行宇宙committer检视并获得两个lgtm】->【取消草稿状态】->【软件包commiter检视&合入】
-
-### 1.1、灵活处理项
-由于上游社区的PR合入周期比较长,可以有如下处理方法:
-* 加速上游社区合入:
- * 及时跟踪上游PR的状态,必要时可以ping committer检视;
- * 可以请求openEuler相关软件包的commiter协助在上游社区检视,甚至帮助合入;
-* 如果软件包未非关键包
- * 可以暂时使用GCC构建的软件包替换,等待上游社区合入。
-* 如果软件包是关键包
- * 可以基于中间仓的版本构建,但需要尽量减少这种情况的数量。
-
-### 2、PR提交规范
-首先,在openEuler社区请遵守[社区PR提交指南](https://gitee.com/openeuler/community/blob/master/zh/contributors/pull-request.md),在软件包上游社区请遵守相应上游社区的PR提交规范。
-此外,由于LLVM平行宇宙相关的PR通常涉及编译构建问题,故增加如下规则:
-
-#### 2.1 patch制作
-* 请基于`git format-patch`方法制作统一格式的patch,便于检视。
-以修改`source/test.c`为例,介绍一下制作方法:
-
-第一步:在`source`目录下初始化git。
-```abap
-git init
-```
-第二步:本地提交test.c文件基线。
-```abap
-git add source/test.c
-git commit -m "init"
-```
-第三步:修改`test.c`文件。
-第四步:提交修改
-```abap
-git add source/test.c
-git commit -m "modify"
-```
-第五步:生成patch。
-```abap
-git format-patch HEAD^ // 基于最近一个commit做patch
-git format-patch HEAD^^ // 基于最近两个commit做patch
-```
-
-#### 2.2 PR描述
-* 描述尽量清晰,包含为什么需要合入这个PR及希望检视人员额外了解的信息。至少包含两部分:
- * 提交PR的背景。可以写基于[这个oEEP](https://gitee.com/openeuler/TC/blob/master/oEEP/oEEP-0003%20LLVM%E5%B9%B3%E8%A1%8C%E5%AE%87%E5%AE%99%E8%AE%A1%E5%88%92--%E5%9F%BA%E4%BA%8ELLVM%E6%8A%80%E6%9C%AF%E6%A0%88%E6%9E%84%E5%BB%BAoE%E8%BD%AF%E4%BB%B6%E5%8C%85.md),该PR的主要目标是使得当前软件包同时支持LLVM构建
- * 描述PR要解决的问题。如果一两句话无法描述清楚,建议提交issue描述。
- * 不影响当前的构建行为。
-* 如果该PR是从上游社区backport回来的,**请在PR描述上写明上游社区的issue链接(如果有的话)和PR链接。**
-
-参考:https://gitee.com/src-openeuler/dhcp/pulls/110
-
-#### 2.3 代码检视
-* 首先,提交PR时,设置改PR为草稿状态,即告知maintainer/committer当前PR尚不具备合入条件。
-* 然后,在LLVM平行宇宙微信群请求review;
-* 如果已获得两个或两个以上[LLVM平行宇宙项目commiters](https://gitee.com/cf-zhao/compiler-docs/blob/master/LLVM%20Parallel%20Universe%20Project/%E5%8F%82%E4%B8%8E%E8%B4%A1%E7%8C%AE%E6%8C%87%E5%AF%BC.md#4llvm%E5%B9%B3%E8%A1%8C%E5%AE%87%E5%AE%99%E9%A1%B9%E7%9B%AEcommiters%E6%8C%81%E7%BB%AD%E5%A2%9E%E5%8A%A0%E4%B8%AD)的`lgtm`,则可以取消PR的草稿状态。
-* 最后,寻求相关软件包的maintainer/committer检视并合入。
-
-### 3 问题修复典型方法建议
-本章包含通性问题的典型修复方法,建议修复相似问题时采用。如果您发现修复方法不妥,请劳烦协助修复,感谢!
-#### 3.1 构建脚本不支持切换到Clang
-##### 3.1.1 编译器在spec文件写死
-
-如果spec文件中写死gcc,如:
-```abap
-gcc -Wall -fpie $RPM_OPT_FLAGS $CFLAGS $RPM_LD_FLAGS $LDFLAGS ifenslave.c -o ifenslave
-```
-修改为:
-```c
-%{__cc} -Wall -fpie $RPM_OPT_FLAGS $CFLAGS $RPM_LD_FLAGS $LDFLAGS ifenslave.c -o ifenslave
-```
-
-##### 3.1.2 编译器在Makefile文件写死
-
-- 如果Makefile已设置编译器类型: CC=gcc,CXX=g++,可在spec设置CC、CXX值,传递给Makefile覆盖原来的值,如:
-```
-# Makefile
-
-CC = gcc
-CXX = g++
-```
-```
-# spec示例
-
-%build
-make
-```
-spec修改为:
-```
-# spec示例
-
-%build
-%if "%{?toolchain}" == "clang"
- %global make_opts CC=clang CXX=clang++
-%endif
-make %{?make_opts}
-```
-##### 3.1.3 CFLAGS在CMakeLists.txt文件写死
-
-```
-# CMakeLists.txt
-
-set(CMAKE_C_FLAGS "-fPIC -fstack-protector-all -D_FORTIFY_SOURCE=2 -O2 -Wall -fPIE")
-```
-修改为:
-```
-set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIC -fstack-protector-all -D_FORTIFY_SOURCE=2 -O2 -Wall -fPIE")
-```
-判断编译器决定是否传参给CFLAGS:
-```
-# spec
-
-%cmake -DDEBUG=ON ../
-```
-修改为:
-```
-%if "%toolchain" == "clang"
-%global cmake_opts -DCMAKE_C_FLAGS="${CFLAGS}"
-%endif
-
-%cmake -DDEBUG=ON %{?cmake_opts} ../
-```
-
-### 4、LLVM平行宇宙项目commiters(持续增加中)
- - 赵 川峰[@cf-zhao](https://gitee.com/cf-zhao) 邮箱: zhaochuanfeng@huawei.com
- - Jiacheng Zhou [@jchzhou](https://gitee.com/jchzhou) 邮箱:
- - 李 云飞[liyunfei33](https://gitee.com/liyunfei33) 邮箱: liyunfei33@huawei.com
- - 罗峰[@luofeng14](https://gitee.com/luofeng14) 邮箱:luofeng13@huawei.com
diff --git "a/LLVM Parallel Universe Project/\351\200\232\350\277\207OBS\345\271\263\345\217\260\345\244\215\347\216\260\346\236\204\345\273\272\351\227\256\351\242\230\346\226\271\346\263\225\346\214\207\345\257\274.md" "b/LLVM Parallel Universe Project/\351\200\232\350\277\207OBS\345\271\263\345\217\260\345\244\215\347\216\260\346\236\204\345\273\272\351\227\256\351\242\230\346\226\271\346\263\225\346\214\207\345\257\274.md"
deleted file mode 100644
index dba3971be1d7a976d6ca7a80fde5c775b7dfd240..0000000000000000000000000000000000000000
--- "a/LLVM Parallel Universe Project/\351\200\232\350\277\207OBS\345\271\263\345\217\260\345\244\215\347\216\260\346\236\204\345\273\272\351\227\256\351\242\230\346\226\271\346\263\225\346\214\207\345\257\274.md"
+++ /dev/null
@@ -1,75 +0,0 @@
-## 通过OBS平台复现构建问题方法指导
-
-### OBS构建环境介绍
-Open Build Service (OBS)是一个开源的构建环境,它提供了一种方便的方式来构建和打包软件。OBS的Project是一个逻辑上的容器,用于组织和管理相关的软件包。在一个Project中,可以包含多个Package,
-这些Package可以是源代码、二进制文件、文档等。
-在OBS中,用户可以创建自己的Project和Package,并将它们上传到build service中进行构建和打包。同时,用户也可以使用已经存在的Project和Package,以便更好地管理和共享软件包。
-
-### 如何使用线上OBS验证环境
-以Mega-LLVM:24.03为例,Mega工程是LLVM平行宇宙计划的OBS工程,其默认使用clang构建。
-
-1. 首先进入线上[OBS构建环境](https://build.tarsier-infra.isrc.ac.cn/project/show/Mega-LLVM:24.03),如果没有账号请注册一个。
-2. 以cpio包为例,Branch "cpio"包到个人工程下。
-
-
-

-
-
-3. 修改代码仓为个人仓库地址。
-
-
-

-
-
-
-

-
-
-4. 点击"Trigger rebuild"触发构建。
-
-
-

-
-
-5. 等待构建成功。
-
-### 如何使用线下OBS验证环境
-OBS支持使用任意联网的构建机器进行构建验证调试。
-1. 以Aarch64架构环境为例。请找一台联网机器,依赖安装包并且配置OBS平台账号。
-```
-yum install osc
-```
-配置文件
-```
-# ~/.config/osc/oscrc
-[general]
-apiurl = https://build.tarsier-infra.isrc.ac.cn/
-no_verify = 1
-
-[https://build.tarsier-infra.isrc.ac.cn/]
-user=***
-pass=***
-```
-2. 使用osc命令构建软件包
-```
-#!/bin/bash
-# get obs _service
-osc co Mega-LLVM:24:03/cpio
-
-cd Mega-LLVM:24:03/cpio
-
-# get source code files
-osc up -S
-
-# rename
-mv _service service;
-for file in `ls | grep -v .osc`;do new_file=${file##*:};mv $file $new_file;done || true
-
-# useing osc to compile
-osc build -j50 --nochecks --root=$(pwd)/build-clang standard_aarch64 2>&1|tee clang-log
-```
-3. 生成patch、修改spec构建验证。
-
-### 参考
-- [常见问题修复、如何生成Patch,请参考参与贡献指导](https://gitee.com/openeuler/compiler-docs/blob/master/LLVM%20Parallel%20Universe%20Project/%E5%8F%82%E4%B8%8E%E8%B4%A1%E7%8C%AE%E6%8C%87%E5%AF%BC.md)
-- [玩转openEuler系列之openEuler构建之OBS使用指导](https://www.bilibili.com/video/BV1YK411H7E2/)
diff --git "a/LLVM Parallel Universe Project/\351\227\256\351\242\230\345\256\232\344\275\215\346\200\273\347\273\223/expected parameter declarator\351\227\256\351\242\230\345\256\232\344\275\215\345\217\212\344\277\256\345\244\215\346\214\207\345\257\274.md" "b/LLVM Parallel Universe Project/\351\227\256\351\242\230\345\256\232\344\275\215\346\200\273\347\273\223/expected parameter declarator\351\227\256\351\242\230\345\256\232\344\275\215\345\217\212\344\277\256\345\244\215\346\214\207\345\257\274.md"
deleted file mode 100644
index 025513cb5d39c75b3c8efe8f977e77b84c22a2d1..0000000000000000000000000000000000000000
--- "a/LLVM Parallel Universe Project/\351\227\256\351\242\230\345\256\232\344\275\215\346\200\273\347\273\223/expected parameter declarator\351\227\256\351\242\230\345\256\232\344\275\215\345\217\212\344\277\256\345\244\215\346\214\207\345\257\274.md"
+++ /dev/null
@@ -1,120 +0,0 @@
-# “expected parameter declarator”问题定位及修复指导
-## 1、问题现象
-24.03 LTS分支上的`crash`、`dhcp`、`cyrus-sasl`软件包切换为Clang构建后出现类似编译错误,如:
-```abap
-[ 4289s] dhclient.c:52:12: error: expected parameter declarator
-[ 4289s] extern int asprintf(char **strp, const char *fmt, ...);
-[ 4289s] ^
-[ 4289s] /usr/include/bits/stdio2.h:207:24: note: expanded from macro 'asprintf'
-[ 4289s] __asprintf_chk (ptr, __USE_FORTIFY_LEVEL - 1, __VA_ARGS__)
-[ 4289s] ^
-[ 4289s] /usr/include/features.h:424:31: note: expanded from macro '__USE_FORTIFY_LEVEL'
-[ 4289s] # define __USE_FORTIFY_LEVEL 2
-```
-## 2、问题根因分析
-### 2.1、问题复现
-selfdef.h
-```abap
-extern int dprintf(int lvl, const char *fmt, ...);
-```
-selfdef.c
-```abap
-#include
-#include "selfdef.h"
-
-int dprintf(int lvl, const char *fmt, ...) {
- printf("call dprintf from selfdef\n");
- return 10;
-}
-```
-main.c
-```abap
-#include
-#include "selfdef.h"
-
-int main() {
- dprintf(2, "call dprintf from stdio\n");
- return 0;
-}
-```
-执行命令
-```abap
-$ gcc main.c selfdef.c -O2
-$ ./a.out
-call dprintf from selfdef
-
-$ gcc main.c selfdef.c -O2 -Wp,-D_FORTIFY_SOURCE=2
-$ ./a.out
-call dprintf from stdio
-
-$ clang main.c selfdef.c -O2
-$ ./a.out
-call dprintf from selfdef
-
-clang main.c selfdef.c -O2 -Wp,-D_FORTIFY_SOURCE=2
-$ ./a.out
-In file included from main.c:2:
-./selfdef.h:1:12: error: expected parameter declarator
-extern int dprintf(int lvl, const char *fmt, ...);
- ^
-/usr/include/bits/stdio2.h:149:22: note: expanded from macro 'dprintf'
- __dprintf_chk (fd, __USE_FORTIFY_LEVEL - 1, __VA_ARGS__)
- ^
-/usr/include/features.h:385:31: note: expanded from macro '__USE_FORTIFY_LEVEL'
-# define __USE_FORTIFY_LEVEL 2
- ^
-```
-### 2.2、dprintf的定义
-通过在系统中搜索dprintf的定义,发现有两处定义,分别是:
-(1)/usr/include/stdio.h
-```abap
-extern int dprintf (int __fd, const char *__restrict __fmt, ...)
- __attribute__ ((__format__ (__printf__, 2, 3)));
-```
-(2) /usr/include/bits/stdio2.h
-```abap
-# ifdef __va_arg_pack
-__fortify_function int
-dprintf (int __fd, const char *__restrict __fmt, ...)
-{
- return __dprintf_chk (__fd, __USE_FORTIFY_LEVEL - 1, __fmt,
- __va_arg_pack ());
-}
-# elif !defined __cplusplus
-# define dprintf(fd, ...) \
- __dprintf_chk (fd, __USE_FORTIFY_LEVEL - 1, __VA_ARGS__)
-# endif
-
-```
-* 为什么存在两个原型定义呢?
- * 这个和`_FORTIFY_SOURCE`有关
-* 为什么第(2)个定义中有两种情况呢?
- * 这个和`__va_arg_pack` 的定义有关
-
-### 2.2.1、-D_FORTIFY_SOURCE=2
-[FORTIFY_SOURCE](https://www.redhat.com/en/blog/security-technologies-fortifysource)为一些内存和字符串函数提供了轻量级编译和运行时保护。在GCC中,`FORTIFY_SOURCE`通常通过将一些字符串和内存函数替换为它们的`*_chk`对应函数(内置函数)来工作。这些函数进行必要的计算以确定溢出。如果发现溢出,程序将中止;否则控制被传递到相应的字符串或存储器操作函数。
-在编译过程中,需要设置`D_FORTIFY_SOURCE`宏才能启用`FORTIFY_SEOURCE`。实现了两个级别的检查。将宏设置为1将启用一些检查(手册页上说“执行不应改变符合程序行为的检查”),而将其设置为2将增加一些检查。
-
-### 2.2.2、__va_arg_pack
-这个是GCC处理变长参数函数时[引入的内建函数](https://gcc.gnu.org/onlinedocs/gcc-4.7.2/gcc/Constructing-Calls.html),LLVM社区没有接纳对[这个GNU扩展的支持](https://reviews.llvm.org/D57635)。
-
-### 2.2.3、问题总结及根因确认
-(1)系统对`dprintf`的定义有两种。
-(2)根据`/usr/include/bits/stdio2.h`中的定义,如果一个编译器已定义`__va_arg_pack`,则`dprintf`被定义为一个函数,而如果编译器未定义`__va_arg_pack`,则`dprintf`被定义为一个宏。
-
-根因:
-当用如下构建命令时:
-```abap
-clang main.c selfdef.c -O2 -Wp,-D_FORTIFY_SOURCE=2
-```
-系统中已经有一个`dprintf`宏定义,和`./selfdef.h`文件中的声明冲突,导致编译错误。
-
-## 3、问题修改建议
-由以上分析可以想到,需要根据应用中实际情况来修改,确保修前后应用仍然能链接正确的定义。
-
-有两种修改方法:
-* 重命名自定义的dprintf
-详见:https://github.com/cyrusimap/cyrus-sasl/commit/b0a587383e0d4e9852ec973accc0854a10b0f128?diff=unified&w=0
-
-* undef系统定义宏。
-详见:https://gitee.com/src-openeuler/dhcp/pulls/110
diff --git a/Meeting&Summit Materials/2023 LLVM Developers' Meeting/Ehsan-ANovelDataLayoutOptimizationInBiShengCompiler.pdf b/Meeting&Summit Materials/2023 LLVM Developers' Meeting/Ehsan-ANovelDataLayoutOptimizationInBiShengCompiler.pdf
deleted file mode 100644
index 00522b6cb525a05a2c8af14e7a991ae3e067d124..0000000000000000000000000000000000000000
Binary files a/Meeting&Summit Materials/2023 LLVM Developers' Meeting/Ehsan-ANovelDataLayoutOptimizationInBiShengCompiler.pdf and /dev/null differ
diff --git "a/Meeting&Summit Materials/20231216-openEuler Summit 2023/BiSheng JDK 24\345\271\264\350\247\204\345\210\222-openEuler Summit 2023.pdf" "b/Meeting&Summit Materials/20231216-openEuler Summit 2023/BiSheng JDK 24\345\271\264\350\247\204\345\210\222-openEuler Summit 2023.pdf"
deleted file mode 100644
index 84bc959295c3887e47e6d6a97cbf84d8a0e3a6a5..0000000000000000000000000000000000000000
Binary files "a/Meeting&Summit Materials/20231216-openEuler Summit 2023/BiSheng JDK 24\345\271\264\350\247\204\345\210\222-openEuler Summit 2023.pdf" and /dev/null differ
diff --git "a/Meeting&Summit Materials/20231216-openEuler Summit 2023/GCC for openEuler \344\274\230\345\214\226\344\273\213\347\273\215\345\217\212\346\226\260\347\211\271\346\200\247\345\211\215\347\236\273-openEuler Summit 2023.pdf" "b/Meeting&Summit Materials/20231216-openEuler Summit 2023/GCC for openEuler \344\274\230\345\214\226\344\273\213\347\273\215\345\217\212\346\226\260\347\211\271\346\200\247\345\211\215\347\236\273-openEuler Summit 2023.pdf"
deleted file mode 100644
index d7d8efb5bed51382b83820eef70c83e0cc0f19b9..0000000000000000000000000000000000000000
Binary files "a/Meeting&Summit Materials/20231216-openEuler Summit 2023/GCC for openEuler \344\274\230\345\214\226\344\273\213\347\273\215\345\217\212\346\226\260\347\211\271\346\200\247\345\211\215\347\236\273-openEuler Summit 2023.pdf" and /dev/null differ
diff --git "a/Meeting&Summit Materials/20231216-openEuler Summit 2023/LLVM for openEuler23\345\271\264\345\267\245\344\275\234\346\261\207\346\212\245\345\217\212\344\270\213\344\270\200\346\255\245\345\267\245\344\275\234\350\256\250\350\256\272-openEuler Summit 2023.pdf" "b/Meeting&Summit Materials/20231216-openEuler Summit 2023/LLVM for openEuler23\345\271\264\345\267\245\344\275\234\346\261\207\346\212\245\345\217\212\344\270\213\344\270\200\346\255\245\345\267\245\344\275\234\350\256\250\350\256\272-openEuler Summit 2023.pdf"
deleted file mode 100644
index 2f4fbf899bc7b6d3f85d85e468618ea6a2e2cd0a..0000000000000000000000000000000000000000
Binary files "a/Meeting&Summit Materials/20231216-openEuler Summit 2023/LLVM for openEuler23\345\271\264\345\267\245\344\275\234\346\261\207\346\212\245\345\217\212\344\270\213\344\270\200\346\255\245\345\267\245\344\275\234\350\256\250\350\256\272-openEuler Summit 2023.pdf" and /dev/null differ
diff --git "a/Meeting&Summit Materials/2024 openEuler SIG Gathering/AI for Compiler\357\274\232GCC\345\237\272\344\272\216BOLT\351\207\207\346\240\267\347\232\204\345\237\272\346\234\254\345\235\227\347\262\276\345\272\246\344\277\256\346\255\243\346\250\241\345\236\213.pdf" "b/Meeting&Summit Materials/2024 openEuler SIG Gathering/AI for Compiler\357\274\232GCC\345\237\272\344\272\216BOLT\351\207\207\346\240\267\347\232\204\345\237\272\346\234\254\345\235\227\347\262\276\345\272\246\344\277\256\346\255\243\346\250\241\345\236\213.pdf"
deleted file mode 100644
index b216a8eaa172c812a2c7cc1f288382857eff7d0c..0000000000000000000000000000000000000000
Binary files "a/Meeting&Summit Materials/2024 openEuler SIG Gathering/AI for Compiler\357\274\232GCC\345\237\272\344\272\216BOLT\351\207\207\346\240\267\347\232\204\345\237\272\346\234\254\345\235\227\347\262\276\345\272\246\344\277\256\346\255\243\346\250\241\345\236\213.pdf" and /dev/null differ
diff --git "a/Meeting&Summit Materials/2024 openEuler SIG Gathering/AI for Compiler\357\274\232MLGO\345\222\214LLM Compiler\347\232\204\344\273\213\347\273\215\345\217\212\344\275\277\347\224\250.pdf" "b/Meeting&Summit Materials/2024 openEuler SIG Gathering/AI for Compiler\357\274\232MLGO\345\222\214LLM Compiler\347\232\204\344\273\213\347\273\215\345\217\212\344\275\277\347\224\250.pdf"
deleted file mode 100644
index fc372581b06f84fbb1aea165993864481b41dd84..0000000000000000000000000000000000000000
Binary files "a/Meeting&Summit Materials/2024 openEuler SIG Gathering/AI for Compiler\357\274\232MLGO\345\222\214LLM Compiler\347\232\204\344\273\213\347\273\215\345\217\212\344\275\277\347\224\250.pdf" and /dev/null differ
diff --git "a/Meeting&Summit Materials/2024 openEuler SIG Gathering/LLVM\345\271\263\350\241\214\345\256\207\345\256\231\350\256\241\345\210\222\342\200\224LLVM\344\270\216openEuelr\345\215\217\345\220\214\350\277\233\345\261\225\344\270\216\345\261\225\346\234\233.pdf" "b/Meeting&Summit Materials/2024 openEuler SIG Gathering/LLVM\345\271\263\350\241\214\345\256\207\345\256\231\350\256\241\345\210\222\342\200\224LLVM\344\270\216openEuelr\345\215\217\345\220\214\350\277\233\345\261\225\344\270\216\345\261\225\346\234\233.pdf"
deleted file mode 100644
index f19a031e596482cd5fe74fdd902100cf31acc5b1..0000000000000000000000000000000000000000
Binary files "a/Meeting&Summit Materials/2024 openEuler SIG Gathering/LLVM\345\271\263\350\241\214\345\256\207\345\256\231\350\256\241\345\210\222\342\200\224LLVM\344\270\216openEuelr\345\215\217\345\220\214\350\277\233\345\261\225\344\270\216\345\261\225\346\234\233.pdf" and /dev/null differ
diff --git "a/Meeting&Summit Materials/2024 openEuler SIG Gathering/openEuler\351\273\230\350\256\244\344\275\277\350\203\275LTO\346\216\242\347\264\242\344\270\216\345\256\236\350\267\265.pdf" "b/Meeting&Summit Materials/2024 openEuler SIG Gathering/openEuler\351\273\230\350\256\244\344\275\277\350\203\275LTO\346\216\242\347\264\242\344\270\216\345\256\236\350\267\265.pdf"
deleted file mode 100644
index fbaa9cf7fa7895109ec8967cf33255e3986b1d98..0000000000000000000000000000000000000000
Binary files "a/Meeting&Summit Materials/2024 openEuler SIG Gathering/openEuler\351\273\230\350\256\244\344\275\277\350\203\275LTO\346\216\242\347\264\242\344\270\216\345\256\236\350\267\265.pdf" and /dev/null differ
diff --git "a/Meeting&Summit Materials/Innovation Squirrels Club/20240429-\351\207\207\347\224\250JIT\346\212\200\346\234\257\350\247\243\345\206\263AI\345\244\247\346\250\241\345\236\213\345\212\250\346\200\201\345\233\276\346\200\247\350\203\275\351\227\256\351\242\230\347\232\204\345\210\233\346\226\260\345\256\236\350\267\265\357\274\210\345\220\264\346\261\237\351\223\255\357\274\211.pdf" "b/Meeting&Summit Materials/Innovation Squirrels Club/20240429-\351\207\207\347\224\250JIT\346\212\200\346\234\257\350\247\243\345\206\263AI\345\244\247\346\250\241\345\236\213\345\212\250\346\200\201\345\233\276\346\200\247\350\203\275\351\227\256\351\242\230\347\232\204\345\210\233\346\226\260\345\256\236\350\267\265\357\274\210\345\220\264\346\261\237\351\223\255\357\274\211.pdf"
deleted file mode 100644
index 68265361b1715fd324520a6cb6497101bb4413fe..0000000000000000000000000000000000000000
Binary files "a/Meeting&Summit Materials/Innovation Squirrels Club/20240429-\351\207\207\347\224\250JIT\346\212\200\346\234\257\350\247\243\345\206\263AI\345\244\247\346\250\241\345\236\213\345\212\250\346\200\201\345\233\276\346\200\247\350\203\275\351\227\256\351\242\230\347\232\204\345\210\233\346\226\260\345\256\236\350\267\265\357\274\210\345\220\264\346\261\237\351\223\255\357\274\211.pdf" and /dev/null differ
diff --git "a/Meeting&Summit Materials/Innovation Squirrels Club/20240625-\346\226\207\346\230\216-\351\235\242\345\220\221JIT\345\215\263\346\227\266\347\274\226\350\257\221\345\231\250\347\232\204\345\256\211\345\205\250\346\265\213\350\257\225\346\212\200\346\234\257\347\240\224\347\251\266\344\270\216\345\256\236\350\267\265-PDF\347\211\210.pdf" "b/Meeting&Summit Materials/Innovation Squirrels Club/20240625-\346\226\207\346\230\216-\351\235\242\345\220\221JIT\345\215\263\346\227\266\347\274\226\350\257\221\345\231\250\347\232\204\345\256\211\345\205\250\346\265\213\350\257\225\346\212\200\346\234\257\347\240\224\347\251\266\344\270\216\345\256\236\350\267\265-PDF\347\211\210.pdf"
deleted file mode 100644
index da4627412d5672a3e9bd0477c3dc08d55a6b32f8..0000000000000000000000000000000000000000
Binary files "a/Meeting&Summit Materials/Innovation Squirrels Club/20240625-\346\226\207\346\230\216-\351\235\242\345\220\221JIT\345\215\263\346\227\266\347\274\226\350\257\221\345\231\250\347\232\204\345\256\211\345\205\250\346\265\213\350\257\225\346\212\200\346\234\257\347\240\224\347\251\266\344\270\216\345\256\236\350\267\265-PDF\347\211\210.pdf" and /dev/null differ
diff --git a/Meeting&Summit Materials/Innovation Squirrels Club/20240723-Filatov Alexandr-Concurrent Programming from Runtime Perspective.pdf b/Meeting&Summit Materials/Innovation Squirrels Club/20240723-Filatov Alexandr-Concurrent Programming from Runtime Perspective.pdf
deleted file mode 100644
index c5744804cf4e2c5d85a95b078da489d16dfacd88..0000000000000000000000000000000000000000
Binary files a/Meeting&Summit Materials/Innovation Squirrels Club/20240723-Filatov Alexandr-Concurrent Programming from Runtime Perspective.pdf and /dev/null differ
diff --git a/README.en.md b/README.en.md
deleted file mode 100644
index 9ae972d3c7b94abc5fbad8af0fe8429c69a936a1..0000000000000000000000000000000000000000
--- a/README.en.md
+++ /dev/null
@@ -1,28 +0,0 @@
-# compiler-docs
-
-### Description
-**Compiler-docs** are used to store documentation related to [OpenEuler Compiler SIG](https://gitee.com/openeuler/community/tree/master/sig/Compiler), including but not limited to feature introduction documents, LLVM parallel universe project, conference/salon materials, release version introductions, bi-weekly shared materials, and more.
-
-## bi-weekly meeting
-The Compiler SIG holds an online meeting every Tuesday at 10:00 AM (UTC+8).
-Meeting minutes address:
-https://etherpad.openeuler.org/p/Compiler-meetings
-
-## Contribution
-1. Fork the repository
-2. Create Feat_xxx branch
-3. Commit your code
-4. Create Pull Request
-
-## Note
-1. PPT, Word and other documents that are easy to tamper with, please convert them into PDF and upload them to our warehouse
-2. Please pay attention to the legal and compliance issues of the uploaded documents
-
-## Compiler SIG Wechat
-Add the assistant to join the Compiler SIG WeChat group.
-
-
-
-

-
-
diff --git a/README.md b/README.md
deleted file mode 100644
index 92b688d615b5996e55e67c3d5b4e9944859f1307..0000000000000000000000000000000000000000
--- a/README.md
+++ /dev/null
@@ -1,29 +0,0 @@
-# compiler-docs
-
-## 介绍
-**compiler-docs**用于存放[openEuler Compiler SIG](https://gitee.com/openeuler/community/tree/master/sig/Compiler)相关的文档资料,包括但不限于特性介绍文档、LLVM平行宇宙计划、大会/沙龙会议材料、版本发布介绍、双周例会共享材料等内容。
-
-## 双周例会
-Compiler SIG 每双周周二上午10:00(UTC+8)进行线上例会。
-会议记录地址:
-https://etherpad.openeuler.org/p/Compiler-meetings
-
-## 参与贡献
-
-1. Fork 本仓库
-2. 新建 Feat_xxx 分支
-3. 提交代码
-4. 新建 Pull Request
-
-## 注意事项
-1. PPT、Word等易篡改的文件,请转成PDF后再上传至本仓。
-2. 上传的文档资料,请注意合法合规问题。
-
-## Compiler SIG微信群
-加小助手进Compiler SIG微信群。
-
-
-
-

-
-
diff --git a/Release Notes/.keep b/Release Notes/.keep
deleted file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000
diff --git a/SIG Bi-weekly Meeting/.keep b/SIG Bi-weekly Meeting/.keep
deleted file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000
diff --git "a/SIG Bi-weekly Meeting/20240702/AI4Compiler - BiSheng ACPO\346\241\206\346\236\266\345\274\225\345\205\245\346\261\207\346\212\245.pptx" "b/SIG Bi-weekly Meeting/20240702/AI4Compiler - BiSheng ACPO\346\241\206\346\236\266\345\274\225\345\205\245\346\261\207\346\212\245.pptx"
deleted file mode 100644
index b7bfdca41303df7cf9d3c7a318033c64b40e3483..0000000000000000000000000000000000000000
Binary files "a/SIG Bi-weekly Meeting/20240702/AI4Compiler - BiSheng ACPO\346\241\206\346\236\266\345\274\225\345\205\245\346\261\207\346\212\245.pptx" and /dev/null differ
diff --git "a/SIG Bi-weekly Meeting/20240702/openEuler 24.03-LTS\345\221\250\346\234\237\345\206\205LLVM\344\270\273\345\211\257\347\211\210\346\234\254\351\200\211\345\236\213\345\222\214\346\274\224\350\277\233\347\255\226\347\225\245\350\256\250\350\256\272.pptx" "b/SIG Bi-weekly Meeting/20240702/openEuler 24.03-LTS\345\221\250\346\234\237\345\206\205LLVM\344\270\273\345\211\257\347\211\210\346\234\254\351\200\211\345\236\213\345\222\214\346\274\224\350\277\233\347\255\226\347\225\245\350\256\250\350\256\272.pptx"
deleted file mode 100644
index d92b87c67d9c0fdfc05ce91afcf544345546f1dc..0000000000000000000000000000000000000000
Binary files "a/SIG Bi-weekly Meeting/20240702/openEuler 24.03-LTS\345\221\250\346\234\237\345\206\205LLVM\344\270\273\345\211\257\347\211\210\346\234\254\351\200\211\345\236\213\345\222\214\346\274\224\350\277\233\347\255\226\347\225\245\350\256\250\350\256\272.pptx" and /dev/null differ
diff --git "a/SIG Bi-weekly Meeting/20240702/\345\274\200\346\272\220\345\217\221\350\241\214\347\211\210\345\256\211\345\205\250\347\274\226\350\257\221\351\200\211\351\241\271\350\260\203\347\240\224.pptx" "b/SIG Bi-weekly Meeting/20240702/\345\274\200\346\272\220\345\217\221\350\241\214\347\211\210\345\256\211\345\205\250\347\274\226\350\257\221\351\200\211\351\241\271\350\260\203\347\240\224.pptx"
deleted file mode 100644
index fb127cdda850b0e79227569596f5f64772cfd2d1..0000000000000000000000000000000000000000
Binary files "a/SIG Bi-weekly Meeting/20240702/\345\274\200\346\272\220\345\217\221\350\241\214\347\211\210\345\256\211\345\205\250\347\274\226\350\257\221\351\200\211\351\241\271\350\260\203\347\240\224.pptx" and /dev/null differ
diff --git "a/SIG Bi-weekly Meeting/Technology Talk/LLVM\346\236\204\345\273\272openEuler\345\256\236\350\267\265\357\274\210\347\254\254\344\270\200\351\203\250\345\210\206\357\274\211.pptx" "b/SIG Bi-weekly Meeting/Technology Talk/LLVM\346\236\204\345\273\272openEuler\345\256\236\350\267\265\357\274\210\347\254\254\344\270\200\351\203\250\345\210\206\357\274\211.pptx"
deleted file mode 100644
index cf9160cde91b383e5ddd9895c783109c831f06e9..0000000000000000000000000000000000000000
Binary files "a/SIG Bi-weekly Meeting/Technology Talk/LLVM\346\236\204\345\273\272openEuler\345\256\236\350\267\265\357\274\210\347\254\254\344\270\200\351\203\250\345\210\206\357\274\211.pptx" and /dev/null differ
diff --git "a/\351\227\256\351\242\230\344\277\256\346\224\271\346\226\207\346\241\243/openssh.md" "b/\351\227\256\351\242\230\344\277\256\346\224\271\346\226\207\346\241\243/openssh.md"
new file mode 100644
index 0000000000000000000000000000000000000000..049d40797132436a224f0fe424f318094a5b4f39
--- /dev/null
+++ "b/\351\227\256\351\242\230\344\277\256\346\224\271\346\226\207\346\241\243/openssh.md"
@@ -0,0 +1,30 @@
+openssh
+rsa和ecdsa缺少头文件
+#include "ssh-pkcs11.h"
+
+%patch后面不能直接跟数字,要空一格
+
+%check
+if [ -e /sys/fs/selinux/enforce ]; then
+ # Store the SElinux state only if the file exists
+ if [ -w /sys/fs/selinux/enforce ] && [ -w. ]; then
+ cat /sys/fs/selinux/enforce > selinux.tmp
+ setenforce 0
+ else
+ echo "Insufficient permissions to handle SELinux state. Skipping modification."
+ fi
+else
+ echo "SELinux is not enabled or enforce file not found. Skipping modification."
+fi
+
+make tests
+
+if [ -e /sys/fs/selinux/enforce ]; then
+ # Restore the SElinux state only if the file exists
+ if [ -w /sys/fs/selinux/enforce ] && [ -f selinux.tmp ]; then
+ cat selinux.tmp > /sys/fs/selinux/enforce
+ rm -rf selinux.tmp
+ else
+ echo "Insufficient permissions or temp file not found. Skipping restoration of SELinux state."
+ fi
+fi
\ No newline at end of file
diff --git "a/\351\227\256\351\242\230\344\277\256\346\224\271\346\226\207\346\241\243/pkcs11-helper.md" "b/\351\227\256\351\242\230\344\277\256\346\224\271\346\226\207\346\241\243/pkcs11-helper.md"
new file mode 100644
index 0000000000000000000000000000000000000000..981603377da890fa13da0a091b53334e37264649
--- /dev/null
+++ "b/\351\227\256\351\242\230\344\277\256\346\224\271\346\226\207\346\241\243/pkcs11-helper.md"
@@ -0,0 +1,28 @@
+###软件包pkcs11-helper:
+
+#错误:
+
+1.aarch64:
+
+[ 101s] pkcs11h-openssl.c:1108:3: error: incompatible function pointer types passing 'int (CRYPTO_EX_DATA *, const CRYPTO_EX_DATA *, void *, int, long, void *)' (aka 'int (struct crypto_ex_data_st *, const struct crypto_ex_data_st *, void *, int, long, void *)') to parameter of type 'CRYPTO_EX_dup *' (aka 'int (*)(struct crypto_ex_data_st *, const struct crypto_ex_data_st *, void **, int, long, void *)') [-Wincompatible-function-pointer-types]
+[ 101s] 1108 | __pkcs11h_openssl_ex_data_dup,
+[ 101s] | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+[ 101s] /usr/include/openssl/rsa.h:444:62: note: expanded from macro 'RSA_get_ex_new_index'
+[ 101s] 444 | CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_RSA, l, p, newf, dupf, freef)
+[ 101s] | ^~~~
+
+2.x86:
+
+同上
+
+#错误解释:
+
+这个错误表明在 pkcs11h-openssl.c 文件的第 1108 行,传递的函数指针类型与期望的类型不兼容。
+
+具体来说,正在尝试将函数 __pkcs11h_openssl_ex_data_dup 的指针传递给一个期望类型为 CRYPTO_EX_dup *(即 int (*)(struct crypto_ex_data_st *, const struct crypto_ex_data_st *, void **, int, long, void *))的参数,但 __pkcs11h_openssl_ex_data_dup 的类型是 int (CRYPTO_EX_DATA *, const CRYPTO_EX_DATA *, void *, int, long, void *)(等同于 int (struct crypto_ex_data_st *, const struct crypto_ex_data_st *, void *, int, long, void *))。
+
+即__pkcs11h_openssl_ex_data_dup函数定义的第三个参数有问题:
+需要的是void **
+结果传递的是void *
+
+社区已修复
\ No newline at end of file
diff --git "a/\351\227\256\351\242\230\344\277\256\346\224\271\346\226\207\346\241\243/python-dmidecode.md" "b/\351\227\256\351\242\230\344\277\256\346\224\271\346\226\207\346\241\243/python-dmidecode.md"
new file mode 100644
index 0000000000000000000000000000000000000000..8d7ada385cffb99cb6947d26a1e7d1dfab284ccd
--- /dev/null
+++ "b/\351\227\256\351\242\230\344\277\256\346\224\271\346\226\207\346\241\243/python-dmidecode.md"
@@ -0,0 +1,33 @@
+软件包python-dmidecode
+
+#错误:
+
+aarch:
+
+1.[ 75s] src/dmidecodemodule.c:916:28: error: incompatible function pointer types initializing 'PyCFunction' (aka 'struct _object *(*)(struct _object *, struct _object *)') with an expression of type 'PyObject *(PyObject *, PyObject *, PyObject *)' (aka 'struct _object *(struct _object *, struct _object *, struct _object *)') [-Wincompatible-function-pointer-types]
+[ 75s] 916 | {(char *)"xmlapi", dmidecode_xmlapi, METH_VARARGS | METH_KEYWORDS,
+[ 75s] | ^~~~~~~~~~~~~~~~
+
+即不兼容的函数指针类型错误:
+在第 916 行,尝试将一个函数指针类型为PyObject *(PyObject *, PyObject *, PyObject *)的表达式初始化为PyCFunction类型(即struct _object *(*)(struct _object *, struct _object *))。这意味着函数的参数个数不匹配,一个接受三个参数,一个只接受两个参数。
+
+#解决方法
+对于第一个错误,是因为函数指针类型不匹配导致的。PyCFunction期望的函数指针类型是接受两个PyObject*参数的函数指针,而dmidecode_xmlapi接受三个PyObject*参数。
+要解决这个问题,可以考虑以下这种方法:
+调整函数定义
+修改dmidecode_xmlapi函数的定义,使其只接受两个PyObject*参数。这可能需要重新设计函数的逻辑,以适应参数的减少。
+
+2.[ 75s] src/dmidecodemodule.c:1027:72: error: incompatible function pointer types passing 'void (void *)' to parameter of type 'PyCapsule_Destructor' (aka 'void (*)(struct _object *)') [-Wincompatible-function-pointer-types]
+[ 75s] 1027 | PyModule_AddObject(module, "options", PyCapsule_New(opt, NULL, destruct_options));
+[ 75s] | ^~~~~~~~~~~~~~~~
+
+即这个错误表明在将一个函数指针作为PyCapsule的析构函数传递时,函数指针类型不兼容。
+具体来说,错误发生在src/dmidecodemodule.c文件的第 1027 行,尝试将一个类型为void (void *)的函数指针传递给期望类型为PyCapsule_Destructor(即void (*)(struct _object *))的参数。
+
+#解决方法:
+检查传递给PyCapsule_New的析构函数destruct_options的定义,确保它的参数类型与PyCapsule_Destructor期望的类型一致。如果不一致,需要修改析构函数的定义,使其接受一个struct _object *类型的参数。
+
+3.解决完前两个出现的问题:
+482行的typeid是char*类型,需要int类型的,格式转换即可
+
+#问题都解决完之后只有最后的报错,没有具体的报错
\ No newline at end of file
diff --git "a/\351\227\256\351\242\230\344\277\256\346\224\271\346\226\207\346\241\243/rarian.md" "b/\351\227\256\351\242\230\344\277\256\346\224\271\346\226\207\346\241\243/rarian.md"
new file mode 100644
index 0000000000000000000000000000000000000000..78331cff8e5f63b0c02b25797dec43824ae0f745
--- /dev/null
+++ "b/\351\227\256\351\242\230\344\277\256\346\224\271\346\226\207\346\241\243/rarian.md"
@@ -0,0 +1,11 @@
+rarian
+
+错误:[ 79s] rarian-example.c:80:1: error: type specifier missing, defaults to 'int'; ISO C99 and later do not support implicit int [-Wimplicit-int]
+[ 79s] 80 | info_for_each (RrnInfoEntry *entry, void *data)
+[ 79s] | ^
+[ 79s] | int
+
+即rarian-example.c 文件的第 80 行,定义函数时没有明确指定函数的返回类型,编译器默认认为是 int,但在 ISO C99 及更高版本中不支持这种隐式的 int 类型声明。
+要解决这个问题,可以在函数定义处明确指定函数的返回类型。
+
+只要在函数前加一个int即可
\ No newline at end of file
diff --git "a/\351\227\256\351\242\230\344\277\256\346\224\271\346\226\207\346\241\243/satyr.md" "b/\351\227\256\351\242\230\344\277\256\346\224\271\346\226\207\346\241\243/satyr.md"
new file mode 100644
index 0000000000000000000000000000000000000000..39b9ed2475e56be7be5d9b106dc061e7860c75f2
--- /dev/null
+++ "b/\351\227\256\351\242\230\344\277\256\346\224\271\346\226\207\346\241\243/satyr.md"
@@ -0,0 +1,12 @@
+satyr
+问题:
+FAIL: core_stacktrace
+上游已修复
+https://github.com/abrt/satyr/pull/340
+
+但是在obs中的x86架构下还是FAIL: core_stacktrace
+经过测试加上
+%if "%toolchain" == "clang"
+ export CFLAGS="$CFLAGS -Wno-error=unused-command-line-argument"
+%endif
+即可通过,而这在后续会加上,因此当做社区已修复
\ No newline at end of file
diff --git "a/\351\227\256\351\242\230\344\277\256\346\224\271\346\226\207\346\241\243/sysstat.md" "b/\351\227\256\351\242\230\344\277\256\346\224\271\346\226\207\346\241\243/sysstat.md"
new file mode 100644
index 0000000000000000000000000000000000000000..e3aa0b1cfa8d9f6265d614296f6f903865e95c45
--- /dev/null
+++ "b/\351\227\256\351\242\230\344\277\256\346\224\271\346\226\207\346\241\243/sysstat.md"
@@ -0,0 +1,11 @@
+sysstat
+
+问题:
+
+[ 72s] rd_stats.c:995:4: error: non-void function 'read_tty_driver_serial' should return a value [-Wreturn-type]
+[ 72s] 995 | return;
+[ 72s] | ^
+
+上一个人提交的patch里,return后面没有返回值
+
+在return后面加上返回值0即可解决问题
\ No newline at end of file
diff --git "a/\351\227\256\351\242\230\344\277\256\346\224\271\346\226\207\346\241\243/trace-cmd.md" "b/\351\227\256\351\242\230\344\277\256\346\224\271\346\226\207\346\241\243/trace-cmd.md"
new file mode 100644
index 0000000000000000000000000000000000000000..d85ece6c4ec613bbe6e68bf9461f46bc68ce8ebb
--- /dev/null
+++ "b/\351\227\256\351\242\230\344\277\256\346\224\271\346\226\207\346\241\243/trace-cmd.md"
@@ -0,0 +1,44 @@
+trace-cmd
+问题:[ 111s] trace-hooks.c:135:5: error: call to undeclared function 'warning'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
+[ 111s] 135 | warning("unknown flag %c\n", flags[i]);
+[ 111s] | ^
+[ 111s] trace-hooks.c:152:2: error: call to undeclared function 'warning'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
+[ 111s] 152 | warning("Invalid hook format '%s'", arg);
+[ 111s] | ^
+[ 111s] 2 errors generated.
+
+即调用了未声明的函数warning
+
+尝试在这个文件里加入相关定义后,别的文件又出现了同样的问题
+依次加上之后
+
+[ 129s] clang: error: linker command failed with exit code 1 (use -v to see invocation)
+[ 129s] make[1]: *** [Makefile:69: /home/abuild/rpmbuild/BUILD/trace-cmd-v2.9.2/tracecmd/trace-cmd] Error 1
+[ 129s] make: *** [Makefile:371: trace-cmd] Error 2
+[ 129s] error: Bad exit status from /var/tmp/rpm-tmp.FmJHHe (%build)
+[ 129s]
+[ 129s] RPM build warnings:
+[ 129s] line 20: It's not recommended to have unversioned Obsoletes: Obsoletes: kernelshark
+[ 129s]
+[ 129s] RPM build errors:
+[ 129s] Bad exit status from /var/tmp/rpm-tmp.FmJHHe (%build)
+
+即不同的编译单元中存在重复定义的符号
+
+经过观察发现所有这些文件都导入了头文件event.util.h
+event.util.h里面也有warning函数的定义,但是没有具体内容
+于是我尝试在warning函数里加入具体内容,结果出现了一开始的问题,即调用了未声明的函数warning,这可能意味着虽然形式上导入了头文件event.util.h,但是实际上并没有真正导入,不清楚是什么原因
+
+void warning(const char* fmt, ...)
+{
+ va_list ap;
+
+ va_start(ap, fmt);
+ fprintf(stderr, " ");
+ vfprintf(stderr, fmt, ap);
+ va_end(ap);
+
+ fprintf(stderr, "\n");
+}
+
+后来在上述包里只加void warning(const char* fmt, ...)声明,不加内容,即可通过
\ No newline at end of file
diff --git "a/\351\227\256\351\242\230\344\277\256\346\224\271\346\226\207\346\241\243/vdo.md" "b/\351\227\256\351\242\230\344\277\256\346\224\271\346\226\207\346\241\243/vdo.md"
new file mode 100644
index 0000000000000000000000000000000000000000..0c6bc68fbd039c9410173748987822da0729a4b0
--- /dev/null
+++ "b/\351\227\256\351\242\230\344\277\256\346\224\271\346\226\207\346\241\243/vdo.md"
@@ -0,0 +1,35 @@
+vdo
+[ 77s] error: unknown warning option '-Wlogical-op'; did you mean '-Wlong-long'? [-Werror,-Wunknown-warning-option]
+[ 77s] make[2]: *** [Makefile:137: murmurhash3.o] Error 1
+[ 77s] make[2]: Leaving directory '/home/abuild/rpmbuild/BUILD/vdo-8.2.2.2/utils/uds'
+[ 77s] make[2]: Entering directory '/home/abuild/rpmbuild/BUILD/vdo-8.2.2.2/utils/uds'
+[ 77s] clang -O2 -g -grecord-gcc-switches -pipe -fstack-protector-strong -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS --config /usr/lib/rpm/generic-hardened-clang.cfg -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -D_GNU_SOURCE -g -O3 -fno-omit-frame-pointer -Wall -Wcast-align -Werror -Wextra -Winit-self -Wlogical-op -Wmissing-include-dirs -Wpointer-arith -Wredundant-decls -Wunused -Wwrite-strings -DCURRENT_VERSION='"8.2.2.2"' -I. -std=gnu99 -pedantic -Wbad-function-cast -Wcast-qual -Wfloat-equal -Wformat=2 -Wmissing-declarations -Wmissing-format-attribute -Wmissing-prototypes -Wnested-externs -Wold-style-definition -Wswitch-default -c -MD -MF .deps/buffer.d.new -MP -MT buffer.o buffer.c -o buffer.o
+
+1.makefile5,6
+-'-Wlogical-op'(+'-Wlong-long');
+
+2.murmu.c 66行
+-
++
+const uint8_t *data_ptr = data;
+uint64_t value = 0;
+for (int i = 0; i < 8; i++) {
+ value <<= 8;
+ value |= data_ptr[i];
+}
+const uint64_t* blocks = &value;
+
+3.buffered-writer.c
+122:chunk = (len < space_remaining_in_write_buffer(writer)? len : space_remaining_in_write_buffer(writer));
+147:chunk = (len < space_remaining_in_write_buffer(writer)? len : space_remaining_in_write_buffer(writer));
+
+4.buffered-reader.c
+161
+205:chunk = (length < bytes_remaining_in_read_buffer(reader)? length : bytes_remaining_in_read_buffer(reader));
+
+5.spec的%build
++
+%if "%toolchain" == "clang"
+ CFLAGS="$CFLAGS -Wno-error=unused-command-line-argument -Wno-error=unused-but-set-variable"
+%endif
+不产生作用,怀疑缺少configure