4 ms·
Shared libraries is an operating system feature and has nothing to do with C. C just happens to be the most popular systems programming language. "Traditional C
by old-gregg 15y ago
Shared libraries is an operating system feature and has nothing to do with C. C just happens to be the most popular systems programming language. "Traditional C model" is just a bunch of object files, and it's up to you and your linker to package it any way you want it: a shared library, a static library or an executable.
I'm not a GCC expert, but Microsoft C compilers could inline cross-module code since the beginning of time. His example may actually produce different results under msvc with /GL flag and with static linking enabled.
"...Inline a function in a module even when the function is defined in another module..."
http://msdn.microsoft.com/en-us/library/0zza0de8%28v=vs.80%29.aspx http://msdn.microsoft.com/en-us/library/0zza0de8%28v=vs.80%2...
- scott_s 15y agoSee my reply below. I'm fully aware of the relationship C has to systems programming.
- cube13 15y agoDepends on their GCC options. If it's the default option, it should be using the shared library. If they changed it to statically link libc, that should produce a(possibly considerable) performance boost.
- ori_b 15y agoGCC got that option recently with '-flto' (or whatever it was to enable link time optimization)
- sausagefeet 15y agoIs anyone working on a JIT for object code? I'm thinking we could keep all our SO's how they are now since they are great for updating versions of libraries with bugs, but have a JIT that takes care of profiling and inlining functions from other modules.
- fanf2 15y agoLLVM is designed to be able to do this.