草庐IT

linux - 在较新的系统上构建较旧的 GLIBC

我有一个问题,我希望这里的一些专家能帮助我:)我的目标很简单:(目标1)在较新的系统上构建一个较旧的glibc,并且(目标2)构建可以在较旧的glibc上运行的旧软件。我在gcc4.9、glibc2.19、amd64系统上。我确实在我的系统上编译了glibc2.14和gcc4.7.3。(约定:/path/to/libc2.14_dir=$LIBC214,/path/to/gcc4.7.3=$GCC473)我正在尝试使用新构建的glibc2.14编译bash4.2.53(以及其他软件coreutil、binutil、qt3.3...)。我的配置和制作看起来像这样:(我在对象/构建目录中)

linux - 在 glibc 源代码中找不到 puts()

我是Linux/C的新手。在我的Linux上的glibc(eglibs-2.15)源代码中,我只能在/libio/stdio.h中找到puts()声明externintputs(__constchar*__s);但在glibc源中的任何地方都找不到puts()的源。我的猜测是puts()是系统相关的,它的来源在其他地方。问题:在哪里可以找到puts()源?此外,在某些系统上,puts()的源代码似乎是可用的,例如在Apple上(http://www.opensource.apple.com/source/Libc/Libc-186/stdio.subproj/puts.c)或NetBS

linux - 对符号 'timer_settime@@GLIBC_2.3.3 的 undefined reference

操作系统:Linux我正在尝试链接mips64-softmmu/qemu-system-mips64但它导致错误:./slirp/misc.o:Infunction`memset':/usr/include/bits/string3.h:81:warning:memsetusedwithconstantzerolengthparameter;thiscouldbeduetotransposedparameters/usr/bin/ld:../qemu-timer.o:undefinedreferencetosymbol'timer_settime@@GLIBC_2.3.3'/usr/b

linux - 构建 glibc 时出错

我正在尝试安装glibc来调试我正在处理的C框架。但是,我在构建过程中遇到错误。这是错误信息:make[3]:Leavingdirectory`/root/glibc-source/glibc-2.14/elf'/usr/bin/install-c/root/glibc-2.14-build/elf/ld.so/usr/local/myglibc/lib/ld-2.14.so.newmv-f/usr/local/myglibc/lib/ld-2.14.so.new/usr/local/myglibc/lib/ld-2.14.so/usr/bin/install-c/root/glibc

linux - 运行此处编译的 C 程序会导致另一台服务器上出现 GLIBC 库未找到错误 - 这是我的错还是他们的错?

这里编译的C程序在我们的Ubuntu服务器上运行良好。但是当其他人试图在他们特定的Linux服务器上运行它时,他们会收到以下错误:./myprog-install:/lib/tls/libc.so.6:version`GLIBC_2.4'notfound(requiredby./myprog-install)./myprog-install:/lib/tls/libc.so.6:version`GLIBC_2.7'notfound(requiredby./myprog-install)我需要升级我们的glibc库并重新编译吗?还是他们的服务器上遗漏了什么?如果我运行apt-caches

linux - Glibc 配置错误

当我在配置Glibc时遇到错误(步骤5.7)时,我正在阅读Linuxfromscratch这本书:checkingforsysdepspreconfigurefragments...aarch64alphaarmconfigure:error:OldABInolongersupported我正在使用:../glibc-2.20/configure\--prefix=/tools\--host=$LFS_TGT\--build=$(../glibc-2.20/scripts/config.guess)\--disable-profile\--enable-kernel=2.6.32\--

c - 使用 gold vs ld 链接器时使用的 glibc/pthreads 的不同符号

我有一个简单的测试程序调用pthread_cond_broadcast。当与ld链接器链接时,这显示:案例一:$nmld-test|grepcond_broadcastUpthread_cond_broadcast@@GLIBC_2.3.2当与gold链接器链接时,它显示:案例二:$nmgold-test|grepcond_broadcastUpthread_cond_broadcastpthread/libc包含几个具有不同版本符号的pthread_cond_broadcast符号,大概是因为ABI已更改。$nm/lib64/libc.so.6|grepcond_broadca000

linux - Fedora 28/GLIBC 2.27 libm.so.6 logf() 和 powf() c++

我相信其他Fedora28用户会知道,该操作系统的glibc最近已更新为glibc2.27。在许多其他方面,2.27添加了logf()和powf()的新实现。这导致我的应用程序无法在具有较旧glibc的发行版(例如Debian)上运行。在Debian上调用应用程序时,会产生以下错误:...libm.so.6版本GLIBC-2.27未找到(./app_name需要)我使用以下过程将符号追踪到logf和powf:objdump-T./app_name|grepGLIBC_2.27给出了以下输出:0000000000000000DF*UND*0000000000000000GLIBC_2.2

c - *** 检测到 glibc *** free() : invalid next size (normal): 0x0a03c978 ***

这个问题在这里已经有了答案:Facinganerror"***glibcdetected***free():invalidnextsize(fast)"(2个答案)关闭8年前。我正在编写一个套接字程序来下载图像。问题是,当我在像gif这样的小图片上测试我的代码时,它工作正常。但是当我用JPG图片(比GIF大)运行它时,我收到了错误消息:***glibcdetected***/home/ubuntu/NetBeansProjects/myDownloader/dist/Debug/GNU-Linux-x86/mydownloader:free():invalidnextsize(norm

linux - 如何确定 glibc 库的安装版本?

我正在使用嵌入式Linux部署并使用不编译I2C库函数调用的交叉编译器工具链。如何确定系统上库的精确版本,以便重建工具链?我不打算替换部署的库,因为我知道它们可以工作(包括I2C),所以我相信我需要以下内容:Binutils版本海湾合作委员会版本通用语言内核(用于header)我想我可以从下面假设binutils库是2.2.5版。内核经过修改,我有源代码。root@dev-box/>ls/lib/-aldrwxrwxrwx3rootroot1024Apr2709:44.drwxrwxrwx14rootroot1024Jan11970..-rwxrwxrwx1rootroot105379