arch/x86/Makefile:184: *** Compiler lacks asm-goto support.. Stop.

时间: 2023-07-18 09:43:19 浏览: 147
这个错误提示表明您的编译器不支持 `asm-goto` 扩展。`asm-goto` 是 Linux 内核中用于实现快速路径的一种机制,需要编译器支持。 如果您使用的是 GCC 编译器,那么您需要确保使用的是 GCC 4.5 或更高版本,并启用 `-fno-delete-null-pointer-checks` 选项。 如果您使用的是 Clang 编译器,那么您需要确保使用的是 Clang 3.9 或更高版本,并启用 `-fexperimental-new-pass-manager` 选项。 您可以在 Makefile 中添加以下选项来启用 `asm-goto` 扩展: ``` KBUILD_CFLAGS += -fno-delete-null-pointer-checks -fno-PIE -no-pie ``` 如果您仍然遇到问题,可以尝试更新您的编译器版本,或者使用支持 `asm-goto` 扩展的编译器。
相关问题

*** No rule to make target `arch//Makefile'. Stop. make: *** [sub-make] Error 2

在引用中,*** No rule to make target `arch//Makefile'. Stop. 的意思是在执行make命令时,找不到指定的目标文件arch/Makefile。这可能是因为在项目中缺少了该文件或者Makefile中的规则有误。由于缺少了指定的目标文件,make命令无法继续执行,从而出现了错误信息。 在引用中,recipe for target 'scripts/mod/empty.o' failed 的意思是在执行make命令时,生成scripts/mod/empty.o文件的规则出现了错误。可能是Makefile.build文件中对应的规则有误,导致生成目标文件失败。 在引用中,recipe for target 'scripts/mod' failed 的意思是在执行make命令时,生成scripts/mod目录的规则出现了错误。可能是Makefile.build文件中对应的规则有误,导致生成目录失败。 总结来说,出现这些错误信息是因为在执行make命令时,无法找到或生成指定的目标文件或目录。这可能是由于缺少文件、规则有误或其他原因导致的。

arch/x86/makefile:142: config_x86_x32 enabled but no binutils support

### 回答1: 这个错误提示是在编译x86架构的代码时出现的,意思是虽然启用了config_x86_x32选项,但是没有binutils的支持。binutils是一组二进制工具,包括汇编器、链接器等等,是编译器的重要组成部分。因此,需要安装binutils或者检查是否正确配置了路径。 ### 回答2: 这个错误信息出现在编译Linux内核时,因为在makefile文件中启用了x86_x32配置,但是当前的binutils版本不支持x86_x32。 x86_x32是一种新的32位模式,它允许在64位系统上以本机速度执行32位代码,且具有更小的内存占用和更快的中断响应时间。但是,支持x86_x32需要一些特殊的binutils工具链。 Binutils是GNU工具集的一部分,提供了各种处理二进制文件的工具,如链接器、汇编器等。它们与特定的CPU体系结构以及操作系统紧密相关。 如果在编译Linux内核时启用了x86_x32配置,但当前的binutils版本不支持x86_x32,则可能导致编译失败,并显示上述错误信息。 解决此问题的方法是更新binutils到最新版本,或者禁用x86_x32配置。如果不需要使用x86_x32,则可以简单地注释掉makefile中的相关行: #CONFIG_X86_X32=y 然后重新运行make命令即可。如果必须使用x86_x32,则需要检查当前的binutils版本是否支持,并根据需要更新或安装binutils工具链。 总之,arch/x86/makefile:142: config_x86_x32 enabled but no binutils support错误信息的出现通常是因为binutils版本不支持x86_x32,需要更新或禁用配置才能解决。 ### 回答3: 这条提示的意思是,在执行Linux内核源代码中arch/x86/makefile文件的第142行时,发现配置了config_x86_x32选项,但是没有对应的binutils支持。 首先,需要了解一下config_x86_x32是什么。x32是一种32位程序模型,同时也允许使用64位寄存器和指令。这种模型相比传统的32位模型具有更好的性能和内存使用效率。而config_x86_x32选项是用来启用x32模型的内核支持。 然后,需要了解一下binutils是什么。binutils是GNU工具集中的一个重要组件,它包括了一系列的二进制文件操作工具,如汇编器、链接器、反汇编器等等。在编译Linux内核时,binutils是必不可少的组件之一。 因此,这条提示的意思是当启用config_x86_x32选项时,应该也同时提供对应的binutils支持,否则会出现错误。解决这个问题的方法是安装与所使用的Linux内核版本相对应的binutils版本,在编译时加入对应的选项。例如,对于Linux内核版本4.2及以上,应该使用binutils 2.26及以上版本,并在编译时加入-x32选项来启用x32模型支持。

相关推荐

根据引用和引用中的错误信息,出现了编译内核时的一些问题。具体来说,报错信息中提到了make Error 1和make: *** [modinst Error 2,这表示在编译内核时出现了错误。同时,引用中的信息也提到了一些文件或目录不存在的错误。 对于问题中的*** Error in ./a.out': double free or corruption (out): 0x0000000001bd5c20 ***,这是一个运行时错误,可能与内存管理有关,但无法直接通过引用内容解释具体原因。 为了解决这些问题,可以尝试以下方法: 1. 确保所需的文件和目录存在,根据引用中的信息,检查文件或目录是否确实存在,并确保路径正确。 2. 检查编译环境和依赖项,确保系统中安装了正确版本的依赖项和工具链,并且环境正确配置。 3. 查看编译日志和错误信息,可以进一步分析和调试具体的编译错误。可以通过查看编译日志文件或运行make命令时的输出来获取更多信息。 如果以上方法无法解决问题,可能需要进一步调试和分析具体的编译环境和代码。可以尝试向相关社区或论坛寻求帮助,或者咨询专业的技术支持人员。123 #### 引用[.reference_title] - *1* *2* [编译内核 make modules_install报错make[1]: *** [arch/x86/crypto/aegis128-aesni.ko] Error 1 Makefile:...](https://blog.csdn.net/m0_51203305/article/details/120809966)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] - *3* [mycat偶尔会出现JVM报错double free or corruption并崩溃退出](https://blog.csdn.net/weixin_30478619/article/details/98534382)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
根据提供的引用内容,错误信息"-bash: ./uart: No such file or directory"表明在当前目录下找不到名为"uart"的文件或目录。这可能是由于以下几个原因导致的: 1. 文件或目录不存在:请确保在当前目录下存在名为"uart"的文件或目录。你可以使用"ls"命令来查看当前目录下的文件和目录列表。 2. 文件或目录权限问题:请确保你对"uart"文件或目录具有足够的权限。你可以使用"ls -l"命令来查看文件或目录的权限,并使用"chmod"命令来更改权限。 3. 文件或目录路径错误:请确保你提供的文件或目录路径是正确的。如果"uart"文件或目录不在当前目录下,你需要提供正确的路径。 如果你确定文件或目录存在且具有正确的权限和路径,但仍然遇到该错误,请提供更多的上下文信息,以便我能够更好地帮助你解决问题。 #### 引用[.reference_title] - *1* *2* [编译内核 make modules_install报错make[1]: *** [arch/x86/crypto/aegis128-aesni.ko] Error 1 Makefile:...](https://blog.csdn.net/m0_51203305/article/details/120809966)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [嵌入式Linux问题总结(一) Ubuntu常用命令和编译问题解决方法](https://blog.csdn.net/weixin_35755562/article/details/116674162)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
引用中的错误提示make: *** [scripts/kconfig/lxdialog/checklist.o] Error 1 Makefile:417: recipe for target 'menuconfig' failed make: *** [menuconfig] Error 2表示在执行make menuconfig命令时,出现了错误。该错误是由于scripts/kconfig/lxdialog/checklist.c文件的编译失败导致的。可能的原因是缺少必要的依赖文件,或者编译环境配置不正确。 引用中的错误提示drivers/video/console/vgacon.o:987:warning:comparison is always true due to limited range of data type make:***[drivers/video/console/vgacon.o] error 1 make:***[drivers/video/console2] error 2 make:***[drivers/video1] error 2 make:***[drivers] error 2表明在编译drivers/video/console/vgacon.c文件时出现了错误。其中包含了一些警告和错误信息,这可能是由于代码中的类型比较问题导致的。 引用中的错误提示make zImage和make xipImageKernel configured for XIP (CONFIG_XIP_KERNEL=y) Only the xipImage target is available in this case make: *** [arch/arm/boot/zImage] Error 1 make: *** [zImage] Error 2表示在编译内核时,出现了一些错误。这可能与配置的选项有关,例如使用了XIP内核(可执行内核映像)的选项,但当前环境下只能使用xipImage目标进行编译。 针对以上错误提示,可以考虑以下解决方法: 1. 确保编译环境配置正确,并安装了必要的依赖文件。 2. 检查相关源代码文件的完整性,并确保没有错误的代码。 3. 如果出现警告信息,可以尝试根据警告信息进行代码调整。 4. 如果使用了特定的内核配置选项,可以尝试禁用或更改这些选项,以便使用正确的编译目标。 注意:由于缺少具体编译环境和相关代码的信息,以上只是一些可能的解决方法。建议进一步检查详细的错误日志和相关配置文件,以便更准确地解决问题。123 #### 引用[.reference_title] - *1* [make menuconfig出错的解决方案](https://blog.csdn.net/lwz15071387627/article/details/88823617)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [内核编译错误的一些解决办法](https://blog.csdn.net/xiyangfan/article/details/5467811)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

最新推荐

SpringBoot+Vue的学生管理信息系统附加源码.rar

SpringBoot+Vue的学生管理信息系统附加源码.rar

客户信用等级分析表.xlsx

客户信用等级分析表.xlsx

MATLAB遗传算法工具箱在函数优化中的应用.pptx

MATLAB遗传算法工具箱在函数优化中的应用.pptx

网格QCD优化和分布式内存的多主题表示

网格QCD优化和分布式内存的多主题表示引用此版本:迈克尔·克鲁斯。网格QCD优化和分布式内存的多主题表示。计算机与社会[cs.CY]南巴黎大学-巴黎第十一大学,2014年。英语。NNT:2014PA112198。电话:01078440HAL ID:电话:01078440https://hal.inria.fr/tel-01078440提交日期:2014年HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaireU大学巴黎-南部ECOLE DOCTORALE d'INFORMATIQUEDEPARIS- SUDINRIASAACALLE-DE-FRANCE/L ABORATOIrEDERECHERCH EEE NINFORMATIqueD.坐骨神经痛:我的格式是T是博士学位2014年9月26日由迈克尔·克鲁斯网格QCD优化和分布式内存的论文主任:克里斯汀·艾森贝斯研究主任(INRIA,LRI,巴黎第十一大学)评审团组成:报告员:M. 菲利普�

gru预测模型python

以下是一个使用GRU模型进行时间序列预测的Python代码示例: ```python import torch import torch.nn as nn import numpy as np import pandas as pd import matplotlib.pyplot as plt # 加载数据 data = pd.read_csv('data.csv', header=None) data = data.values.astype('float32') # 划分训练集和测试集 train_size = int(len(data) * 0.7) train_data = d

vmware12安装配置虚拟机

如何配置vmware12的“首选项”,"虚拟网络编辑器","端口映射”,"让虚拟机连接到外网”

松散事务级模型的并行标准兼容SystemC仿真

松散事务级模型的并行标准兼容SystemC仿真

AttributeError: 'MysqlUtil' object has no attribute 'db'

根据提供的引用内容,错误信息应该是'MysqlUtil'对象没有'db'属性,而不是'MysqlUtil'对象没有'connect'属性。这个错误信息通常是由于在代码中使用了'MysqlUtil'对象的'db'属性,但是该属性并不存在。可能的原因是'MysqlUtil'对象没有被正确地初始化或者没有正确地设置'db'属性。建议检查代码中是否正确地初始化了'MysqlUtil'对象,并且是否正确地设置了'db'属性。

数字化转型对企业业绩的影响研究以海尔智家为例.pptx

数字化转型对企业业绩的影响研究以海尔智家为例.pptx

泰瑞克·萨亚关联数据中的选择性披露和推理泄漏问题的研究

泰瑞克·萨亚关联数据中的选择性披露和推理泄漏问题的研究