GLibc optimizations required
Asked Answered
M

3

7

Why is it not possible recompile GLibc turning off all the optimizations (i.e., -O0)?

Particularly in doing this:

make CFLAGS='-O0 -w' CXXFLAGS='-O0 -w'

I get:

 #error "glibc cannot be compiled without optimization"
Martsen answered 6/5, 2015 at 23:56 Comment(1)
Find the repository, find the source of the message, find the commit which added it, and read the commit message?Frogmouth
A
8

When I Google the error, the first result tells me exactly why.

"In the early startup of the dynamic loader (_dl_start), before relocation of the PLT, you cannot make function calls. You must inline the functions you will use during early startup, or call compiler builtins (__builtin_*).

Without optimizations enabled GCC will not inline functions. The early startup of the dynamic loader will make function calls via an unrelocated PLT and crash." -- Carlos O'Donell

Antoninus answered 7/5, 2015 at 0:8 Comment(2)
Why not just add the inline option (like -finline-functions and -finline-small-functions) and turn off the other optimizations? I tried but it doesn't work anyway.Martsen
@badnack: I don't know, I'm not the one who set this restriction... I'm just a messengerAntoninus
S
3

Basically: "glibc is voodoo!" This one "library of all libraries" has a very special place in any system, because virtually(?) everything else in the entire system relies upon it.

Therefore, if "someone out there" took the time to prevent you from compiling this library "without optimizations," I cordially invite you to take him/her at their word. "There must be a [very good] reason."

Sturgeon answered 7/5, 2015 at 0:4 Comment(0)
M
0

By Slackware operating system version 15. In the folder:

/home/wsys0/glibc/glibc-2.36/build/

Create a file name cmp:

chmod 700 cmp

Put the following line into cmp:

export CFLAGS="-Wno-error -O3 -g"
../configure --prefix=/home/wsys0/glibc/out --disable-sanity-checks

Then run: ./cmp, to install it.

Reference: https://sky-bro.github.io/posts/compile-and-use-your-own-glibc/

Messeigneurs answered 21/4, 2023 at 2:47 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.