问题标签 [lld]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
18235 浏览

linker - `-rpath-link` 和 `-L` 有什么区别?

男人的gold状态:

bfd 的 manld听起来有点像-rpath-link用于递归包含的 sos。

ld.lld甚至没有将其列为论点。

有人可以为我澄清这种情况吗?

0 投票
1 回答
1331 浏览

clang++ - 检查用于在 Mac OS 上创建可执行文件的“链接器”的命令(由 clang++ 使用)

我在 mac os 上使用“clang++”编译器(使用 mac os 10.9 sdk)创建了一个可执行文件。

我的查询是如何确认(检查命令)我的可执行文件是使用 ld.lld 链接器还是 ld.gold/其他链接器创建的?mac os 上的默认链接器“clang++”使用(交叉检查命令)是什么?

问候, 维奈

0 投票
1 回答
83 浏览

linker-scripts - 使用 MEMORY 时忽略节地址

我有一个链接器脚本:

如果我使用它链接一个(非常简单的)文件,它会给出我所期望的:

并且aligned_dot是:

但是,我想使用这样的MEMORY命令:

当我使用此脚本链接时,该部分的地址似乎.data被忽略了!

即使仍然aligned_dot是:

这很奇怪吧?到底是怎么回事?这是使用 Clang 的 LLD。

0 投票
0 回答
28 浏览

git - 具有通用克隆目录的 Git 子模块

我正在开发一个使用LLVMLLD的项目,它们存储在单独的远程存储库(https://git.llvm.org/git/llvmhttps://git.llvm.org/git/lld)中。要构建 LLD,必须将其克隆到 LLVM 内部,LLVM 构建系统将检测它的存在并为其生成构建目标(文档)。恰恰:

LLD_CLONE_DIR = LLVM_CLONE_DIR/tools/lld

我想使用 git 子模块,并调用git submodule update --init --recursive(在 CMake 配置期间)。

我发现 git 无法处理将一个子模块放入另一个子模块的问题,例如:

我想过让我的构建脚本构造一个符号链接,但它在某些平台(Windows)上是不可靠的。如何构建目录以使 LLVM 构建系统满意,但我可以使用 git 子模块来克隆两个存储库?

更新:我已成功使用 CMake 的文件命令将 lld 源复制到正确的位置。不过,我仍然对更好的解决方案感兴趣。

0 投票
0 回答
208 浏览

clang - 有没有办法禁用特定的 llvm lld 警告?

我从 llvm 6.0.0 收到以下警告,lld同时链接到libiomp5.so我从 llvm 6.0.0 ubuntu 14.04 下载(此处)预构建的警告

据我所知,这对我来说是一个可忽略的问题(无论如何一切仍然有效)。我不想禁用所有警告,或者禁用将警告视为错误。我怎样才能告诉链接器忽略这个警告?

0 投票
1 回答
1747 浏览

c++ - 如何为 LLVM lld 提供共享库路径?

我正在尝试使用 LLVM lld 链接器而不是我之前使用的 GNU ld 链接器。

LLD 8.0.0(与 GNU 链接器兼容)

我有一些共享库放置在/usr/local/lib. 我为 GNU ld 链接器设置了路径ld.so.conf来查找库。但是, lld 忽略ld.so.conf. 我也尝试设置LD_LIBRARY_PATH

/usr/local/lib

但 lld 似乎也忽略了这一点。如何添加/usr/local/lib到 lld 链接器搜索路径?

0 投票
1 回答
571 浏览

llvm - 与 LLD 链接时禁用重定位

是否有一个选项lld会告诉它不要执行重定位。我不想要 PIC 代码,我只想不执行重定位。(是的,我知道这会导致可执行文件不起作用。)

0 投票
1 回答
324 浏览

clang - Clang Windows LD 设置库路径不起作用?

在 6.0.0 或 6.0.1 的 windows 上编译

ld.lld 在指定路径中找不到库。

这不起作用:

ld.lld Source.o -o Executable.exe -L"C:/Users/Username/Documents/" libcode.a

但这确实:

ld.lld Source.o -o Executable.exe C:/Users/Username/Documents/libcode.a

我在这里做错了吗?它适用于 gnu ld 就好了。

0 投票
0 回答
345 浏览

clang - ld.lld 链接器是否在 Windows 上正常工作?

起初 ld.lld 似乎链接成功,但执行调用指令时可执行文件崩溃。

我正在使用 clang 6.0.1

我的程序使用 gcc ld 链接并执行得很好。

有人告诉我驱动程序不完整,这是真的吗?

有没有人使用 ld.lld 成功链接并在 Windows 上运行?

0 投票
0 回答
189 浏览

c++ - -O2 函数作用域静态 TLS 上的 LLD 错误不能用于使用 -fPIC 重新编译符号

我正在使用 LLVM 的 LLD8 来替换 GNU-LD 以提高链接速度。但是当我制作.so文件时,发布模式出现了一个奇怪的错误。精简后,我用一个简单的例子重现了这个问题

测试.h:

测试.cpp

主文件

在我的项目中从 make V=1 stdout 复制的 cmds 之后,我将这些 cmds 保存到脚本中并编译我的示例文件

编译库:

链接库

编译文件

链接所以

最后我得到了这个错误

如您所见,我已经在我的 cmds 中传递了 -fPIC,所以我将 -znotext 传递给 lld 但我又遇到了另一个错误

此错误仅在我以发布模式编译项目时报告,当我删除 -O2 时,它链接良好。但是当我使用在调试模式下链接的 so/bin 来运行测试用例时,我在使用函数作用域静态 tls 的代码周围得到了很多无异常的核心转储。