Questions tagged «glibc»

glibc是GNU对Standard C库的实现。

1
对ld-linux.so黑客使用替代libc;更清洁的方法?
我有一个带有非常老的glibc的遗留系统,如果不进行大量测试/验证工作,就无法升级。 我现在需要多次在该系统上运行较新的程序(例如Java 1.7)。我选择了chroot解决方案,其中打包了所有需要的库,并在chroot中运行服务。 chroot的限制非常大,我宁愿尝试使用LD_LIBRARY_PATH解决问题。不幸的是,我libc.so.6: cannot handle TLS data在尝试时遇到错误。 事实证明,我也需要/lib/ld-linux.so.2chroot的。这有效: LD_LIBRARY_PATH=/home/chroot/lib /home/chroot/lib/ld-linux.so.2 /home/chroot/bin/program 但是,java通过检查/proc/self/cmdline以确定从何处加载其库来挫败我的窍门,如果二进制文件未命名为“ bin / java”,该方法将失败。Java在启动过程中也会执行自身,这使事情变得更加复杂。 在最后努力,使这项工作,我打开了Java二进制,十六进制编辑器和替换字符串/lib/ld-linux.so.2用/home/chroot/ld.so(并作出一个符号链接ld-linux.so.2),和它的工作! 但是我想每个人都会同意,将每个新二进制文件的路径重写为嵌套系统的绝对路径是一个巨大的麻烦。 有谁知道使用自定义库路径(包括自定义ld-linux.so)的更简洁方法?

2
如何使Linux的“性能记录”适用于libc和libstdc ++符号?
我perf record -g在x86-64 Linux上使用它来分析程序。libc或libstdc ++中的几个符号0作为父代:例如__GI___strcmp_ssse3(libc)和strcmp@plt(libstdc ++)。(我实际上可以在调试器中中断这些符号并获得回溯。) 我很想知道这些函数的主要调用者是什么,以及为什么不记录它们。这是因为libc和libstdc ++在x86_64上没有帧指针吗?而且,实际上,是否有解决方法?
12 glibc  profiling  perf 

2
GNU Linux(Arch Linux)上的SIGINFO丢失
我正在开发一个应用程序,我希望它可以根据需要将一些运行时统计信息打印到控制台。kill我立刻想到了信号。 阅读Wiki上的Unix信号SIGINFO似乎是一种可行的方法,因为: 它旨在为这些目的 如果未实现信号处理程序,则不终止进程(与SIGUSRx- 相反,请参见此处) 但是,通过检查的输出kill -l,看来我的服务器没有实现此信号。 我的问题是: 为什么SIGINFO我的系统不见了?所有GNU Linux系统上都不存在吗? 是否有一种简单的方法(即没有内核/ glibc重新编译)来启用此信号?如果没有,那么困难的方法是什么? 我可以为目标使用什么替代信号,如果目标过程未处理,则不会产生任何副作用?(由于我在glibc的手册上找不到任何其他合适的信号,因此我已经假设没有) Linux metainfo: Linux whatever 3.18.2-2-ARCH #1 SMP PREEMPT Fri Jan 9 07:37:51 CET 2015 x86_64 GNU/Linux 更新:我仍在寻找有关为何有条件将此信号从BSD以外的其他系统中排除的更多信息(请参阅下面的评论)。该信号似乎对许多目的都非常有用,因此我很难相信这只是个一时兴起的事情-那么该信号在Linux上的真正表现是什么呢?
12 linux  signals  glibc 

2
安装glibc-devel.i686后没有32开发库错误
我试图在CentOS 6安装gcc 4.9.0在./configure有来了一个错误: /usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-redhat-linux/4.4.7/libgcc_s.so when searching for -lgcc_s /usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-redhat- linux/4.4.7/libgcc_s.so when searching for -lgcc_s /usr/bin/ld: cannot find -lgcc_s collect2: ld returned 1 exit status configure: error: I suspect your system does not have 32-bit developement libraries (libc and headers). If you have them, rerun …
11 centos  gcc  glibc 

1
“ getting ahosts”的输出是什么?
哪些字段打印getent ahosts DOMAIN? 输出为getent hostsIP和主机名的简单组合。该getent ahosts有一个额外的第三场就是在我所有的测试中,无论是STREAM,DGRAM还是RAW。 输出为 getent hosts example.net 2001:500:88:200::10 example.net 和为 getent ahosts example.net 2001:500:88:200::10 STREAM example.net 2001:500:88:200::10 DGRAM 2001:500:88:200::10 RAW 192.0.43.10 STREAM 192.0.43.10 DGRAM 192.0.43.10 RAW
10 networking  glibc 

1
如何正确升级glibc?
我的NAS的固件带有一个相当老的版本glibc,即2.5。为了处理链接到*glibc 2.15的一些预编译二进制文件,我想对其进行升级。通过在chroot环境中进行一些简单的测试,我了解到简单地添加更新程序libc-2.15.so和更新符号链接libc.so.6将产生无法使用的系统。可能是由于依次libc-2.15.so链接到ld-linux.so.3了,所以当然也需要2.15版本而不是2.5版本。但是在我经历过多的反复试验之前, 手动升级glibc的正确步骤是什么? *尽管被“静态” 链接,但它们仍动态链接到glibc ...
10 upgrade  glibc 

2
可以编译和引导GNU吗?
前一段时间发布了新的Guix版本。我的想法是,如果我可以将glibc,gcc和guix引导到HURD和Mach,那么我可以拥有一个非Linux GNU系统。但是我还需要一些软件,例如bash,emacs,binutils,coreutils,一个初始化系统。这些工具中的任何一个是否具有与Linux相关的任何系统调用?我能像在LFS中那样吗?
9 gcc  glibc  hurd 

1
RPMDB校验和无效-尝试在CentOS 7.2 Docker映像中安装gcc
所以我试图创建一个包含gcc的Docker镜像。 我RUN yum -y install gcc在Dockerfile中运行命令。 它会下载软件包,直到最终尝试安装依赖项失败为止。 Rpmdb checksum is invalid: dCDPT(pkg checksums): glibc-headers.x86_64 0:2.17-157.el7_3.1 - u 以下是输出: Dependencies Resolved ================================================================================ Package Arch Version Repository Size ================================================================================ Installing: gcc x86_64 4.8.5-11.el7 base 16 M Installing for dependencies: cpp x86_64 4.8.5-11.el7 base 5.9 M glibc-devel x86_64 2.17-157.el7_3.1 updates 1.1 M glibc-headers …
9 centos  docker  glibc 

1
如何在Arch Linux上重建glibc?
似乎MATLAB已在Linux上获得了成功,因为它“通过静态TLS动态加载了某些库”,这对我来说除了意味着一堆错误之外,对我来说没有任何意义。 建议的解决方法是glibc使用更大的文件进行重建DTV_SURPLUS。这给我留下了两个问题: 如何glibc在Arch Linux上重建以增加DTV_SURPLUS?我看着abs树中的PKGBUILD,却没有看到DTV_SURPLUS任何地方,所以我不知道在哪里进行更改。 我设定为什么值DTV_SURPLUS?大概将其设置为过大 2^64和一个坏主意。 在R2014a中使用以下MWE可以看到MATLAB的问题: >> ones(10)*ones(10); >> doc('help'); Exception in thread "XPCOMMessageLoop" java.lang.UnsatisfiedLinkError: /opt/matlab/sys/jxbrowser/glnxa64/xulrunner/xulrunner-linux-64/libxul.so: dlopen: cannot load any more object with static TLS at java.lang.ClassLoader$NativeLibrary.load(Native Method) at java.lang.ClassLoader.loadLibrary1(Unknown Source) at java.lang.ClassLoader.loadLibrary0(Unknown Source) at java.lang.ClassLoader.loadLibrary(Unknown Source) at java.lang.Runtime.load0(Unknown Source) at java.lang.System.load(Unknown Source) at com.teamdev.jxbrowser.gecko.xpcom.impl.linux.LinuxMozillaToolkit.c(Unknown Source) at com.teamdev.jxbrowser.gecko.xpcom.impl.linux.LinuxMozillaToolkit.a(Unknown Source) …

1
什么是syscall-template.S?
我碰到了一个文件,syscall-template.S更具体地说,它的位置是 .../sysdeps/unix/syscall-template.S 这是什么文件 它在哪里。它不在我的系统上,我无法在包括linux-image和的源代码包中找到它glibc。
8 kernel  c  glibc 
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.