Sample Header Ad - 728x90

Unix & Linux Stack Exchange

Q&A for users of Linux, FreeBSD and other Unix-like operating systems

Latest Questions

1 votes
1 answers
93 views
Adb is giving an undefined symbol: libusb_get_ssplus_usb_device_capability_descriptor error, and I am unsure how to solve this?
I am trying to run `adb`, in order to backup my android device. I installed android tools via dnf (`sudo dnf install android-tools`), but adb is giving a symbol error, specifically: `adb: symbol lookup error: adb: undefined symbol: libusb_get_ssplus_usb_device_capability_descriptor`. I have tried to...
I am trying to run adb, in order to backup my android device. I installed android tools via dnf (sudo dnf install android-tools), but adb is giving a symbol error, specifically: adb: symbol lookup error: adb: undefined symbol: libusb_get_ssplus_usb_device_capability_descriptor. I have tried to look online if others have experienced this as well, but was unable to find anything. From what I've been able to gather, this symbol should be present in all libusb version greater then 1.0.26, but mine is greater but still gives the error.
$ rpm -q libusb1

> libusb1-1.0.27-9.fc41.x86_64
> libusb1-1.0.27-9.fc41.i686
> libusb1-1.0.28-2.fc41.x86_64
> libusb1-1.0.28-2.fc41.i686
I also checked that adb indeed does link to my system libraries, which it does.
$ ldd $(which adb)

> ...
> libusb-1.0.so.0 => /lib64/libusb-1.0.so.0 (0x00007f07c835f000)
> ...
I'm not fully sure what to try next, or how to get adb to run succesfully. Any call to adb gives this lookup error (even simply calling it as adb --help). I am running: - Fedora 41 (KDE Plasma) - Kernel 6.14.11 - with an Intel i7 mobile cpu, in case that might matter.
Brendan Mesters (111 rep)
Jun 21, 2025, 11:45 AM • Last activity: Jul 2, 2025, 06:44 PM
0 votes
1 answers
243 views
Add symbols of LKM to kernel
I am trying to get my Android kernel working but I have a kernel module that is needed in order to get access to the file system of the device. Unfortunately there is no source code available so there are only the pre-compiled module and the kernel source. The kernel now tries to load the module wit...
I am trying to get my Android kernel working but I have a kernel module that is needed in order to get access to the file system of the device. Unfortunately there is no source code available so there are only the pre-compiled module and the kernel source. The kernel now tries to load the module without success. In the Module.symvers file in the kernel root directory the symbol that is needed is missing but the manufacturer of the device delivered a Module.symvers file from the root of the kernel source tree which includes all symbols that are needed. How can I include those symbols in my kernel to get the module working?
lehmanju (1 rep)
Mar 20, 2016, 02:07 PM • Last activity: Nov 4, 2024, 03:40 PM
0 votes
0 answers
336 views
How to detect undefined symbols in shared libraries or objects?
My Linux distribution (openSUSE Slowroll) accidentally shipped some incompatible libraries recently due to its experimental nature, lacking adequate automated testing using openQA, that caused the desktop environment and other programs like flatpak to crash on startup. The relevant errors: ``` Oct 1...
My Linux distribution (openSUSE Slowroll) accidentally shipped some incompatible libraries recently due to its experimental nature, lacking adequate automated testing using openQA, that caused the desktop environment and other programs like flatpak to crash on startup. The relevant errors:
Oct 10 09:05:09 suse-pc gnome-shell: JS ERROR: GLib.Error g-invoke-error-quark: Could not locate g_settings_bind_with_mapping_closures: 'g_settings_bind_with_mapping_closures': /lib64/libgio-2.0.so.0: undefined symbol: g_settings_bind_with_mapping_closures
Oct 14 03:07:36 suse-pc atomic-update: flatpak: symbol lookup error: /lib64/libgobject-2.0.so.0: undefined symbol: g_sort_array
I have a simple program I use to perform atomic updates, so I was wondering if there was a way to detect these undefined symbols in shared libraries/objects, so the faulty update can be discarded instead of being applied. Thanks! --- EDIT 1: I found an easy way to detect incompatible libraries was to print the version string for the program being tested:
pavin@suse-laptop:~/Downloads> gnome-control-center --version
gnome-control-center: symbol lookup error: /lib64/libgoa-backend-1.0.so.2: undefined symbol: adw_button_row_get_type, version LIBADWAITA_1_0
As @MarcusMüller said in the comments, this may not work always. So it is necessary to perform the check for a list of all essential programs you need.
Pavin Joseph (276 rep)
Oct 28, 2024, 08:57 AM • Last activity: Oct 28, 2024, 04:01 PM
3 votes
1 answers
4424 views
How to list imported functions (.plt) for an ELF executable without disassembling using objdump?
Currently, I check for imported functions (`.plt`) using `objdump`: objdump -D -j .plt myprog | grep '@plt' However, it doesn't seem right to have `objdump` output annotated disassembly to `grep` to list imported (`.plt`) functions. To check exported functions, I use `readelf -s myprog`, but the imp...
Currently, I check for imported functions (.plt) using objdump: objdump -D -j .plt myprog | grep '@plt' However, it doesn't seem right to have objdump output annotated disassembly to grep to list imported (.plt) functions. To check exported functions, I use readelf -s myprog, but the imported .plt functions doesn't show up here? How can I list all imported (.plt) function in an ELF executable?
Shuzheng (4931 rep)
Jun 23, 2019, 08:38 AM • Last activity: Mar 22, 2024, 07:05 PM
2 votes
0 answers
2389 views
Symbol lookup error for libreadline
I recently started having problems with running programs like sqlite3 or awk on Ubuntu20. These programs won't start and just show this error: ```symbol lookup error: /usr/local/lib/libreadline.so.8: undefined symbol: UP``` I found several solutions but those usually lead to installing libreadline f...
I recently started having problems with running programs like sqlite3 or awk on Ubuntu20. These programs won't start and just show this error:
lookup error: /usr/local/lib/libreadline.so.8: undefined symbol: UP
I found several solutions but those usually lead to installing libreadline from source. I removed libreadline and libhistory and their symlinks from /usr/local and followed a guide that is not available online now. I installed it, made all symlinks, updated ENV variables but the problem still persists. These solutions (https://stackoverflow.com/questions/26670417/how-to-compile-readline-from-source and https://stackoverflow.com/questions/46881581/libreadline-so-7-undefined-symbol-up ) suggest that invalid symbol may be defined here /usr/lib/libncurses.so but tsuch file is not in my system. Please let me know if you have any suggestions what I can do to fix this problem.
Juraj Bezručka (121 rep)
Apr 7, 2021, 09:49 PM • Last activity: Dec 22, 2023, 07:58 AM
1 votes
0 answers
2682 views
Access list of all symbols exported `/proc/kallsyms` from inside kernel module?
I'm writing a simple kernel module and it seems on the newest kernel versions (I've tried `5.8`, `5.10`, `6.0`) functions like `kallsyms_lookup_name` and `kallsyms_on_each_symbol` are no longer exported, meaning they can't be accessed through `kallsyms.h`. So, how do I access the list containing all...
I'm writing a simple kernel module and it seems on the newest kernel versions (I've tried 5.8, 5.10, 6.0) functions like kallsyms_lookup_name and kallsyms_on_each_symbol are no longer exported, meaning they can't be accessed through kallsyms.h. So, how do I access the list containing all the kernel symbols and their addresses from the kernel module? What's the best approach? I'm able to find them with a shell command sudo cat /proc/kallsyms/ but now I wanna be able to do that from the k.o. Any suggestions?
Allan Almeida (13 rep)
Nov 1, 2022, 02:05 PM
3 votes
1 answers
3459 views
ELF symbol: GLOBAL+HIDDEN
Based on eg. [this Oracle description][1]: > STB_GLOBAL > Global symbols. **These symbols are visible to all object files** being combined. One file's definition of a global symbol will satisfy another file's undefined reference to the same global symbol. > ... > STV_HIDDEN > A symbol defined in the...
Based on eg. this Oracle description : > STB_GLOBAL > Global symbols. **These symbols are visible to all object files** being combined. One file's definition of a global symbol will satisfy another file's undefined reference to the same global symbol. > ... > STV_HIDDEN > A symbol defined in the current component is hidden if its name **is not visible to other components**. Such a symbol is necessarily protected. This attribute is used to control the external interface of a component. An object named by such a symbol may still be referenced from another component if its address is passed outside. > **A hidden symbol contained in a relocatable object is either removed or converted to STB_LOCAL binding** by the link-editor when the relocatable object is included in an executable file or shared object. However, looking at readelf -s of some simple test program (compiled with GCC on x86-64 Linux), there are some global hidden symbols: FUNC GLOBAL HIDDEN 16 _fini OBJECT GLOBAL HIDDEN 25 __dso_handle OBJECT GLOBAL HIDDEN 25 __TMC_END__ According to the description above this should be both nonsensical and not allowed at all. What are the properties (visibility, interpositioning ability, ...) of this combination?
Moutaineer of Mariana trench (81 rep)
May 5, 2022, 07:14 PM • Last activity: Aug 2, 2022, 08:11 PM
0 votes
1 answers
341 views
the value of system calls are 0 in symbol table
i use the following command to see the symbol table of my binary: readelf -s mybinary you can see part of the output below: [![enter image description here][1]][1] [1]: https://i.sstatic.net/Dmiee.png as you can see the value of all system calls such as printf and exit are 00000000. but i want to fi...
i use the following command to see the symbol table of my binary: readelf -s mybinary you can see part of the output below: enter image description here as you can see the value of all system calls such as printf and exit are 00000000. but i want to find the address of this system calls. what should i do? i search a lot but i don't find any thing.
sarahh (1 rep)
Dec 27, 2020, 01:49 PM • Last activity: Dec 27, 2020, 02:37 PM
1 votes
1 answers
989 views
No version symbols in freshly compiled libstdc++
I'm compiling version 10.1 of GCC using the following configuration: ../configure --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu --prefix=/home/user/toolchain/gcc --enable-checking=release --enable-languages=c,c++,fortran --disable-multilib --enable-shared --enable-gnu-un...
I'm compiling version 10.1 of GCC using the following configuration: ../configure --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu --prefix=/home/user/toolchain/gcc --enable-checking=release --enable-languages=c,c++,fortran --disable-multilib --enable-shared --enable-gnu-unique-object --with-linker-hash-style=gnu After compilation is finished it seems i don't have any version symbols in the compiled listdc++.so: > strings ./x86_64-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.0.28 | grep GLIBCXX GLIBCXX_FORCE_NEW GLIBCXX_DEBUG_MESSAGE_LENGTH (and nothing else) (btw I get the same result if I 'make install' gcc before checking on the installed lib) Going to another system, the same command issues (output truncated): > strings /usr/lib64/libstdc++.so.6.0.28 | grep GLIBCXX GLIBCXX_3.4 GLIBCXX_3.4.1 GLIBCXX_3.4.2 GLIBCXX_3.4.5 [ ... ] GLIBCXX_3.4.26 GLIBCXX_3.4.27 GLIBCXX_3.4.28 [ ... ] Why am I not getting the version symbols in my freshly new compiled gcc/libstdc++ version ?
JeanMi (131 rep)
Jul 2, 2020, 09:49 AM • Last activity: Jul 2, 2020, 04:51 PM
2 votes
2 answers
4229 views
Extracting the size and origin of all symbols in an ELF
I am trying to estimate the code size of a binary's various components. I have access to the source code and resulting build directory containing all built object files. Of course, I want to include only the symbols that are actually used, so adding the sizes of the all the object file's `.text` and...
I am trying to estimate the code size of a binary's various components. I have access to the source code and resulting build directory containing all built object files. Of course, I want to include only the symbols that are actually used, so adding the sizes of the all the object file's .text and .data sections will end up overestimating actuals. How can one determine the size and origin of all symbols used to link an ELF file? Something like this would be useful: Symbol Size Origin func1 0x50 ../src/func1.o func2 0x75 ../src/func2.o ... And something similar for all symbols that are .data. The resulting .map file seems to have *some* of this data, but it seems incomplete. Two sections that stand out are: Allocating common symbols Common symbol size file s_Handle 0x8 ../BUILD/src/handle.o _main_obj 0x48 ../BUILD/src/boot.o .... But there are just a few dozen symbols listed here. The following section seems to have far more symbols, but it appears as if they are listed as being "Discarded" at link-time: Discarded input sections .text 0x00000000 0x0 /home/user/.programs/gcc-arm-none-eabi-5_4-2016q3/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7e-m/crti.o .data 0x00000000 0x0 /home/user/.programs/gcc-arm-none-eabi-5_4-2016q3/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7e-m/crti.o .bss 0x00000000 0x0 /home/user/.programs/gcc-arm-none-eabi-5_4-2016q3/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7e-m/crti.o .data 0x00000000 0x0 /home/user/.programs/gcc-arm-none-eabi-5_4-2016q3/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7e-m/crt0.o .bss 0x00000000 0x0 /home/user/.programs/gcc-arm-none-eabi-5_4-2016q3/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7e-m/crt0.o .ARM.extab 0x00000000 0x0 /home/user/.programs/gcc-arm-none-eabi-5_4-2016q3/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7e-m/crt0.o .text._Z12notify_startv 0x00000000 0x14 ../BUILD/./test_env.o .text._Z30notify_performance_coefficientPKci 0x00000000 0x18 ../BUILD/./test_env.o .text._Z30notify_performance_coefficientPKcj 0x00000000 0x18 ../BUILD/./test_env.o .text._Z30notify_performance_coefficientPKcd 0x00000000 0x20 ../BUILD/./test_env.o .text._Z17notify_completionb 0x00000000 0x64 ../BUILD/./test_env.o .text._Z21notify_completion_strbPc 0x00000000 0x30 ../BUILD/./test_env.o ...
sherrellbc (2601 rep)
Sep 21, 2017, 04:31 PM • Last activity: May 17, 2019, 05:16 PM
1 votes
2 answers
7619 views
Need to type special symbol in vi
I want to type `½` in vi mode but it is coming with extra character `½`. I am pressing `ALT+0189`. I have searched a lot on the same but failed to get.
I want to type ½ in vi mode but it is coming with extra character ½. I am pressing ALT+0189. I have searched a lot on the same but failed to get.
api1411 (144 rep)
Oct 18, 2016, 12:50 PM • Last activity: Mar 9, 2019, 08:37 AM
2 votes
2 answers
2066 views
Why do some libc symbols have WEAK binding and others GLOBAL?
Why are different symbols in libc declared with different bindings, 1510 0x0003d200 0xf7d55200 WEAK FUNC 55 system 454 0x00067b40 0xf7d7fb40 WEAK FUNC 474 puts 147 0x000303d0 0xf7d483d0 GLOBAL FUNC 33 exit From `readelf -s /lib/i386-linux-gnu/libc-2.27.so`, 1510: 0003d200 55 FUNC WEAK DEFAULT 13 sys...
Why are different symbols in libc declared with different bindings, 1510 0x0003d200 0xf7d55200 WEAK FUNC 55 system 454 0x00067b40 0xf7d7fb40 WEAK FUNC 474 puts 147 0x000303d0 0xf7d483d0 GLOBAL FUNC 33 exit From readelf -s /lib/i386-linux-gnu/libc-2.27.so, 1510: 0003d200 55 FUNC WEAK DEFAULT 13 system@@GLIBC_2.0 454: 00067b40 474 FUNC WEAK DEFAULT 13 puts@@GLIBC_2.0 147: 000303d0 33 FUNC GLOBAL DEFAULT 13 exit@@GLIBC_2.0 [From this question](https://reverseengineering.stackexchange.com/q/19764/22669) , it seems like the authors' libc has a LOCAL exit? What the rhyme or reason behind the different libc binding levels?
Evan Carroll (34663 rep)
Oct 31, 2018, 02:46 AM • Last activity: Oct 31, 2018, 09:21 PM
46 votes
3 answers
27781 views
Why nm shows no symbols for /lib/i386-linux-gnu/libc.so.6?
I expected to see number of symbols in the **libc.so.6** file including **printf**. I used the **nm** tool to find them, however it says there is no symbol in libc.so.6.
I expected to see number of symbols in the **libc.so.6** file including **printf**. I used the **nm** tool to find them, however it says there is no symbol in libc.so.6.
masec (645 rep)
May 11, 2016, 08:48 PM • Last activity: Oct 23, 2018, 01:45 AM
8 votes
1 answers
6041 views
What are difference between the ELF symbol visibility levels?
The [NASM docs on *"`elf` Extensions to the GLOBAL Directive"* say,](https://www.nasm.us/doc/nasmdoc7.html) > Optionally, you can control the ELF visibility of the symbol. Just add one of the visibility keywords: `default`, `internal`, `hidden`, or `protected`. The default is `default` of course. Wh...
The [NASM docs on *"elf Extensions to the GLOBAL Directive"* say,](https://www.nasm.us/doc/nasmdoc7.html) > Optionally, you can control the ELF visibility of the symbol. Just add one of the visibility keywords: default, internal, hidden, or protected. The default is default of course. Where are these defined? and how does ld use them? I see [access levels mentioned frequently in C++ which include *protected*, *public*, and *private*](https://en.cppreference.com/w/cpp/language/access) , but I don't know if this is what ELF is referencing? My use-case is C and Assembly so if you can make this relevant to those two languages and the linker, extra points.
Evan Carroll (34663 rep)
Oct 1, 2018, 11:47 PM • Last activity: Oct 2, 2018, 02:41 PM
3 votes
1 answers
2165 views
What is the number in readelf symbol table name?
I have a local static variable, something like this: void function(void) { static unsigned char myVariable = 0; ... I dump the symbol table using readelf as follows: readelf -s myprogram.elf and I get the symbol table, that contains `myVariable` as follows: ... 409: 00412668 1 NOTYPE LOCAL DEFAULT 1...
I have a local static variable, something like this: void function(void) { static unsigned char myVariable = 0; ... I dump the symbol table using readelf as follows: readelf -s myprogram.elf and I get the symbol table, that contains myVariable as follows: ... 409: 00412668 1 NOTYPE LOCAL DEFAULT 16 myVariable.9751 ... My question is: what does the number mean after the name of the variable and the dot? And is there any detailed documentation about the output format of readelf? The man page does not contain information about the format of the symbol table, and I cannot find anything about this. (I'm using Xilinx's ARM GNU tools, but I guess, this is kind of the same for other platforms as well) Thanks!
waszil (133 rep)
Sep 27, 2018, 10:12 AM • Last activity: Sep 27, 2018, 05:16 PM
8 votes
1 answers
4208 views
How to handle accents with enscript?
I cannot figure out how to handle accents with `enscript` when converting a txt into a pdf: echo "élisée" | enscript -o - -X | ps2pdf - output.pdf I tried all possible encoding but none are leading to the proper result. I guess I should add a iconv at the first stdout --------------------...
I cannot figure out how to handle accents with enscript when converting a txt into a pdf: echo "élisée" | enscript -o - -X | ps2pdf - output.pdf I tried all possible encoding but none are leading to the proper result. I guess I should add a iconv at the first stdout -------------------- List of enscript encoding that I have tried: * 88592 * 88593 * 88594 * 88595 * 88597 * 88599 * 885910 * ascii * asciifise * asciidkno * ibmpc * mac * vms * hp8 * koi8 * ps * pslatin1
user123456 (5258 rep)
Dec 12, 2016, 07:37 PM • Last activity: Dec 12, 2016, 08:16 PM
2 votes
1 answers
5881 views
Linux kernel, missing '__fentry__' symbol
Trying to build the [EtherCAT master][1] driver (realtime I/O driver) on a RT Linux (SL6.3) I keep bumping into a missing symbol issue when building the EtherCAT kernel modules: # make modules make -C "/usr/src/kernels/3.8.13-rt27.40.el6rt.x86_64" M="/root/etherlabmaster-code-08aa7305b9baba37bdd9eb4...
Trying to build the EtherCAT master driver (realtime I/O driver) on a RT Linux (SL6.3) I keep bumping into a missing symbol issue when building the EtherCAT kernel modules: # make modules make -C "/usr/src/kernels/3.8.13-rt27.40.el6rt.x86_64" M="/root/etherlabmaster-code-08aa7305b9baba37bdd9eb4d8c2a8762aa56a7e2" modules make[1] : Entering directory `/usr/src/kernels/3.8.13-rt27.40.el6rt.x86_64' Building modules, stage 2. MODPOST 4 modules WARNING: "__fentry__" [/root/etherlabmaster-code-08aa7305b9baba37bdd9eb4d8c2a8762aa56a7e2/master/ec_master.ko] undefined! WARNING: "__fentry__" [/root/etherlabmaster-code-08aa7305b9baba37bdd9eb4d8c2a8762aa56a7e2/examples/mini/ec_mini.ko] undefined! WARNING: "__fentry__" [/root/etherlabmaster-code-08aa7305b9baba37bdd9eb4d8c2a8762aa56a7e2/devices/ec_generic.ko] undefined! WARNING: "__fentry__" [/root/etherlabmaster-code-08aa7305b9baba37bdd9eb4d8c2a8762aa56a7e2/devices/e1000e/ec_e1000e.ko] undefined! make[1] : Leaving directory `/usr/src/kernels/3.8.13-rt27.40.el6rt.x86_64' # grep -Hin "fentry" /boot/config-uname -r /boot/config-3.8.13-rt27.40.el6rt.x86_64:4797:CONFIG_HAVE_FENTRY=y # strings /boot/System.map-3.8.13-rt27.40.el6rt.x86_64 | grep -i "fentry" -- nothing -- # I'm using **GCC v 4.9.1**, as you can see, the kernel config file does contain an entry related to 'fentry' and is enabled. Weird thing is that I would expect the System.map to contain the __fentry__ symbol declared in there, but it isn't!? I've tried building the EtherCAT driver against the kernel 3.10-rt & 3.14-rt, same issue, it's complaining about about the __fentry__ symbol missing. If I go ahead and launch the EtherCAT service, I get the following: # service ethercat start Starting EtherCAT master 1.5.2 FATAL: Error inserting ec_master (/lib/modules/3.8.13-rt27.40.el6rt.x86_64/ethercat/master/ec_master.ko): Unknown symbol in module, or unknown parameter (see dmesg) failed # dmesg | tail ... ec_master: Unknown symbol __fentry__ (err 0)
fduff (5185 rep)
Feb 3, 2016, 01:12 PM • Last activity: Feb 15, 2016, 04:50 PM
3 votes
1 answers
678 views
Can the kernel symbols' addresses be influenced? consequences?
**tl;dr:** in my distros linux 3.08 kernel using `cat /proc/kallsyms` I can find out that for instance the _commit_creds function/symbol is located at address 0xc1073fe0. When either: - building my kernel (option 1) - via tweaking the kernel binary (option 2) is it **possible** to influence those ad...
**tl;dr:** in my distros linux 3.08 kernel using cat /proc/kallsyms I can find out that for instance the _commit_creds function/symbol is located at address 0xc1073fe0. When either: - building my kernel (option 1) - via tweaking the kernel binary (option 2) is it **possible** to influence those addresses? (i.e. randomize to mitigate exploits to the kernel?) Am I further correctly assuming that the system calls provided by the kernel need to remain at predictable/know addresses to not break the ABI provided by the kernel? **long version** In part of the cve-2016-0728 Vulnerability of certain linux kernels the provided PoC uses those two source code lines: #define COMMIT_CREDS_ADDR (0xffffffff81094250) #define PREPARE_KERNEL_CREDS_ADDR (0xffffffff81094550) which even though they play their role *only after an overflow-with-use-after-free type of problem has occured*, are nonetheless essential to complete the priveledge escalation. Of course the addresses are not the same for all kernels and basically change for each distribution. Anyway it seems that they are constant within the line of kernels (i.e. Ubuntu 12.04 x86 will always have the address at 0xc1073fe0). My question is to understand if one can influence those addresses to shuffle/randomize them as to make an exploitation of the kernel more difficult (i.e. somewhat blind the attacker, after having the instruction pointer in kernel ring 0)? I would assume that in order to have a ABI for system calls I cannot change the position of sys_xxxxxxxxxxx symbols, but at least for the internals of kernel symbols I do not necessarily understand the need to have them be predictable? Therefore I am asking here how one would go about randomizing those kernel symbols, either by - (1) compile custom kernel or, - (2) even better tweak a kernel and move the symbols around (which I think might be much harder and more fragile thing to do). What is the consequence when changing the addresses of kernel symbols? (excluding the system call ABI ones).
humanityANDpeace (15072 rep)
Jan 20, 2016, 09:43 AM • Last activity: Jan 20, 2016, 02:58 PM
10 votes
1 answers
2782 views
Function symbol gets '.part' suffix after compilation
When cross compiling the Linux kernel 3.18.10, the compiler adds a `.part. ` suffix at the end of some symbols (see an example below). The number ` ` changes when using different defconfigs. Does anybody know under which conditions the compiler adds the part suffix at the end of a symbol? ``$ arm-no...
When cross compiling the Linux kernel 3.18.10, the compiler adds a .part. suffix at the end of some symbols (see an example below). The number `` changes when using different defconfigs. Does anybody know under which conditions the compiler adds the part suffix at the end of a symbol? `$ arm-none-linux-gnueabi-readelf -a vmlinux | grep do_kernel_fault` gives `c03a48f8 116 FUNC LOCAL DEFAULT 2 __do_kernel_fault.part.10`
mblaettler (103 rep)
Aug 13, 2015, 02:06 PM • Last activity: Dec 4, 2015, 02:47 PM
Showing page 1 of 19 total questions