使用llvm 编译最新的linux 内核(LoongArch)
1. 准备交叉工具链
llvm 使用了最新的llvm-17, 编译方法见:编译LoongArch的llvm交叉工具链
gcc 从linux 官方下载:http://mirrors.edge.kernel.org/pub/tools/crosstool/files/bin/x86_64/13.2.0/x86_64-gcc-13.2.0-nolibc-loongarch64-linux.tar.xz
发布llvm和gcc 相应的环境变量
$ llc --version
LLVM (http://llvm.org/):LLVM version 17.0.0rcOptimized build.Default target: x86_64-unknown-linux-gnuHost CPU: haswellRegistered Targets:aarch64 - AArch64 (little endian)aarch64_32 - AArch64 (little endian ILP32)aarch64_be - AArch64 (big endian)amdgcn - AMD GCN GPUsarm - ARMarm64 - ARM64 (little endian)arm64_32 - ARM64 (little endian ILP32)armeb - ARM (big endian)avr - Atmel AVR Microcontrollerbpf - BPF (host endian)bpfeb - BPF (big endian)bpfel - BPF (little endian)hexagon - Hexagonlanai - Lanailoongarch32 - 32-bit LoongArchloongarch64 - 64-bit LoongArchmips - MIPS (32-bit big endian)mips64 - MIPS (64-bit big endian)mips64el - MIPS (64-bit little endian)mipsel - MIPS (32-bit little endian)msp430 - MSP430 [experimental]nvptx - NVIDIA PTX 32-bitnvptx64 - NVIDIA PTX 64-bitppc32 - PowerPC 32ppc32le - PowerPC 32 LEppc64 - PowerPC 64ppc64le - PowerPC 64 LEr600 - AMD GPUs HD2XXX-HD6XXXriscv32 - 32-bit RISC-Vriscv64 - 64-bit RISC-Vsparc - Sparcsparcel - Sparc LEsparcv9 - Sparc V9systemz - SystemZthumb - Thumbthumbeb - Thumb (big endian)ve - VEwasm32 - WebAssembly 32-bitwasm64 - WebAssembly 64-bitx86 - 32-bit X86: Pentium-Pro and abovex86-64 - 64-bit X86: EM64T and AMD64xcore - XCore
2. 下载内核源码
从https://www.kernel.org/ 下载最新的版本(linux-next) ,本次用的是linux 6.6rc1
3. 编译内核
$ cd linux-next
$ export ARCH=loongarch$ make O=./build_llvm LLVM=1 loongson3_defconfig
$ make O=./build_llvm LLVM=1 -j4
make[1]: 进入目录“/home/loongson/work/oh/kernel/linux-next-next-20230906/build_llvm”GEN MakefileCALL ../scripts/checksyscalls.shAS arch/loongarch/kernel/genex.o
<instantiation>:11:9: error: Cannot represent a difference across sections.dword 768b-766b^
<instantiation>:11:9: error: Cannot represent a difference across sections .dword 768b-766b^
<instantiation>:11:9: error: Cannot represent a difference across sections .dword 768b-766b^
<instantiation>:11:9: error: Cannot represent a difference across sections
出现上面的错误是因为不relocalable 特性,修改内核配置 关掉CONFIG_RELOCATABLE
CONFIG_CRASH_DUMP=n
CONFIG_RELOCATABLE=n
$ make O=./build_llvm LLVM=1 -j4../arch/loongarch/include/asm/percpu.h:20:4: error: compiler support for the model attribute is necessary when a recent assembler is used20 | # error compiler support for the model attribute is necessary when a recent assembler is used| ^
出现上面的错误是因为不module 也还不支持,修改内核配置 关掉CONFIG_MODULES
CONFIG_MODULES=n
相关文章:
使用llvm 编译最新的linux 内核(LoongArch)
1. 准备交叉工具链 llvm 使用了最新的llvm-17, 编译方法见:编译LoongArch的llvm交叉工具链 gcc 从linux 官方下载:http://mirrors.edge.kernel.org/pub/tools/crosstool/files/bin/x86_64/13.2.0/x86_64-gcc-13.2.0-nolibc-loongarch64-linux.tar.xz 发布llvm和g…...
Using Multiple RDF Knowledge Graphs for Enriching ChatGPT Responses
本文是LLM系列文章,针对《Using Multiple RDF Knowledge Graphs for Enriching ChatGPT Responses》的翻译。 使用多个RDF知识图来丰富ChatGPT响应 摘要1 引言2 相关工作3 GPT-LODS的过程和用例4 结束语 摘要 最近有一种趋势是使用新型人工智能聊天GPT聊天箱&…...
【Hive-小文件合并】Hive外部分区表利用Insert overwrite的暴力方式进行小文件合并
这里我们直接用实例来讲解,Hive外部分区表有单分区多分区的不同情况,这里我们针对不同情况进行不同的方式处理。 利用overwrite合并单独日期的小文件 1、单分区 # 开启此表达式:(sample_date)?. set hive.support.quoted.identifiersnon…...
位运算 |(按位或) (按位与) ^(按位异或)
目录 文章目录:本章讲解的主要是刷题系列 1:首先会介绍 I & ^这三个操作符的作用,性质 2:三道使用位运算操作符的经典 笔试题(来自剑指offer) 题目链接如下: 1:136. 只出现一次的数字 - 力扣(LeetCode…...
Qt应用开发(基础篇)——复选按钮 QCheckBox 单选按钮 QRadioButton
一、前言 QCheckBox类与QRadioButton类继承于QAbstractButton,QCheckBox是一个带有文本标签的复选框,QRadioButton是一个带有文本标签的单选按钮。 按钮基类 QAbstractButton QCheckBox QCheckBox复选框是一个很常用的控件,拥有开关(选中和未…...
AERMOD模型大气环境影响评价
随着我国经济快速发展,我国面临着日益严重的大气污染问题。近年来,严重的大气污染问题已经明显影响国计民生,引起政府、学界和人们越来越多的关注。大气污染是工农业生产、生活、交通、城市化等方面人为活动的综合结果,同时气象因…...
递归组装树结构的数据
开发中,经常遇到存在树形结构的数据,如行政区划这类数据,一级一级分层,后端需要组装好树形结构数据返回给前端。 由于返给前端的json数据中,如果是叶子节点了,说明它没有子节点,那么就没必要返…...
企业架构LNMP学习笔记7
PHP介绍: HTML:超文本标记语言 http: 超文本传输协议 端口80 浏览器将html代码解析成web页面。 PHP:超文本预处理器。后端语言开发,页面上需要动态改变修改的,需要连接数据库查询数据,转为html。 主要…...
开店星小程序上架教程和后台Request failed with status code 500[undefined]问题处理
开店星小程序上架教程和后台Request failed with status code 500[undefined]问题处理 刚刚安装好开店星网站后台之后都会出现这个code 500[undefined]的错误,需要改一下代码。改好了之后就可以正常使用了。如果大家不懂得这样处理的可以私聊我,帮忙处理…...
第一百三十六回 WillPopScope组件
文章目录 概念介绍使用方法示例代码 我们在上一章回中介绍了下拉刷新组件相关的内容,本章回中将介绍 WillPopScope组件.闲话休提,让我们一起Talk Flutter吧。 概念介绍 我们在本章回中介绍的WillPopScope组件是一种事件拦截类组件,它没有具…...
【论文爬虫】自动将论文详细信息直送notion并自动下载(含源码)
输入论文标题,本爬虫将自动在semanticscholar.com和arxiv.com搜索该文章,自动获取其日期、作者、url、摘要等信息,并自动发送到你提前设置好的notion数据库里,同时自动从arxiv下载论文,然后将论文的保存地址在notion页…...
Android知识点整理
关键点 Activity Fragment 调试应用 处理应用程序配置 Intent 和 Intent 过滤器 会使用Context 后台处理指南 Android 的数据隐私 Android 网络数据安全教程 Android 中的依赖项注入 内容提供程序 Android 内存管理概览 一些重要的库 1.Glide 是一个 Android 上的…...
JSON与电子表格
一、介绍 电子表格是一种常见的电子数据处理工具,而JSON是一种数据交换格式。电子表格和JSON之间可以进行数据的导入和导出,以实现数据的相互转换和交互。 在电子表格中,数据以行和列的形式组织,并可以包含不同的数据类型。每个…...
Oracle创建用户、授权视图权限
1、创建用户密码 create user 用户名 identified by 密码;2、创建视图 CREATE VIEW 用户1.表名1 AS SELECT * FROM 用户2.表名2 t;3、授权 GRANT SELECT ON 用户2.表名2 TO 用户1 with GRANT OPTION ;grant connect to 用户名; grant select on 用户1.表名1 t…...
MT4移动端应用指南:随时随地进行交易
如今,随着科技的不断发展,我们可以随时随地通过手机进行各种操作,包括进行金融交易。本文将为大家介绍一款优秀的金融交易软件——MT4(可在mtw.so/6gwPno这点下)移动端应用,并提供详细的使用指南࿰…...
【数据挖掘】学习笔记
文章目录 < 数据预处理 > 聚集:多个样本或特征进行合并(减少样本规模、转换标度、更稳定)抽样:抽取一部分样本降维:在地位空间中表示样本(PCA、SVD)特征选择:选取重要特征&am…...
MyBatis-Plus排除不必要的字段
查询学生信息排除年龄列表 📚🔍 使用MyBatis-Plus排除某些字段。如果你想要进行查询,但又不需要包含某些字段,那么这个功能将非常适合你。🔍🎓📝 1. 学生信息查询-排除年龄列表 在使用 MyBat…...
webpack打包
文章目录 一、什么是webpack二、使用步骤1.创建一个新的文件夹,并将其初始化2.在当前目录下安装webpack以及webpack-cli3.配置webpack自定义命令,使之生效4.运行自定义命令,打包webpack5.打包成功之后会将内容打包到dist文件夹下6.配置webpack1)修改webpack打包入口和出口2)配置…...
【Java SE】抽象类与接口
目录 【1】抽象类 【1.1】抽象类概念 【1.2】抽象类语法 【1.3】抽象类特性 【1.4】抽象类的作用 【2】接口 【2.1】接口的概念 【2.2】语法规则 【2.3】接口使用 【2.4】接口特性 【2.5】实现多个接口 【2.6】接口间的继承 【2.7】接口使用实例 【2.8】Clonable …...
HTML <time> 标签
实例 如何定义时间和日期: <p>我们在每天早上 <time>9:00</time> 开始营业。</p><p>我在 <time datetime"2008-02-14">情人节</time> 有个约会。</p>定义和用法 <time> 标签定义公历的时间&…...
Django CORS Headers 终极指南:10个企业级跨域架构设计技巧
Django CORS Headers 终极指南:10个企业级跨域架构设计技巧 【免费下载链接】django-cors-headers Django app for handling the server headers required for Cross-Origin Resource Sharing (CORS) 项目地址: https://gitcode.com/gh_mirrors/dj/django-cors-he…...
可视化拖拽组件库终极指南:响应式设计与适配方案完整解析
可视化拖拽组件库终极指南:响应式设计与适配方案完整解析 【免费下载链接】visual-drag-demo 一个低代码(可视化拖拽)教学项目 项目地址: https://gitcode.com/gh_mirrors/vi/visual-drag-demo 可视化拖拽组件库是现代低代码开发平台的…...
VRCX:重新定义VRChat社交管理的智能伴侣工具
VRCX:重新定义VRChat社交管理的智能伴侣工具 【免费下载链接】VRCX Friendship management tool for VRChat 项目地址: https://gitcode.com/GitHub_Trending/vr/VRCX 在虚拟社交平台VRChat的生态中,社交关系管理常常成为用户体验的痛点。传统方式…...
突破性网络资源嗅探解决方案:从技术困境到智能下载的革命性跨越
突破性网络资源嗅探解决方案:从技术困境到智能下载的革命性跨越 【免费下载链接】res-downloader 资源下载器、网络资源嗅探,支持微信视频号下载、网页抖音无水印下载、网页快手无水印视频下载、酷狗音乐下载等网络资源拦截下载! 项目地址: https://gi…...
病床前尽孝心,脊柱 “被折得濒临损伤”!
长期弯腰照顾卧床病人、喂饭、翻身、擦洗,颈腰椎损伤风险显著。弯腰时腰椎弯曲角度过大,椎间盘承受压力剧增;反复弯腰起身照顾病人,肌肉与椎间盘反复冲击;低头专注护理时,颈椎前伸与腰椎受力形成双重负担。…...
极速体验OpenClaw:星图平台nanobot镜像10分钟入门
极速体验OpenClaw:星图平台nanobot镜像10分钟入门 1. 为什么选择云端沙盒体验OpenClaw 作为一个长期关注AI自动化工具的技术爱好者,我一直在寻找一个既安全又高效的本地AI助手解决方案。OpenClaw的出现让我眼前一亮,但本地部署的复杂环境配…...
如何用XUnity.AutoTranslator实现Unity游戏实时翻译?3大核心优势与5步落地指南
如何用XUnity.AutoTranslator实现Unity游戏实时翻译?3大核心优势与5步落地指南 【免费下载链接】XUnity.AutoTranslator 项目地址: https://gitcode.com/gh_mirrors/xu/XUnity.AutoTranslator 你是否曾因语言障碍错失精彩的Unity游戏内容?XUnity…...
保姆级教程:用BERT微调一个智能家居语音助手的意图识别模型(含完整代码)
智能家居场景下的BERT意图识别实战:从数据标注到模型部署 想象一下,当你对家里的智能音箱说"把客厅灯调暗一点"时,设备能准确理解你的意图并执行操作。这种自然交互的背后,是意图识别技术在发挥作用。不同于通用对话系…...
从“玩概念”到“真落地”:AI智能体三大场景的突围之路
当行业不再为“大模型参数”狂欢,真正的价值开始浮现——客服自动化、内部知识库、办公Agent,正在成为AI智能体最先跑通商业闭环的三大场景。而决定成败的关键,已经从模型能力转向上下文设计、工具调用与反馈迭代。 2026年,大模型…...
16-Kotlin高阶特性-Lambda详解
Kotlin Lambda 表达式完全指南Lambda 表达式是 Kotlin 函数式编程的核心特性之一,它让代码更简洁、表达力更强。无论是集合操作、协程、还是 Jetpack Compose 中的 UI 回调,都大量使用 lambda。本文将系统讲解 Kotlin lambda 的语法形式、含义、各种语法…...
