serenity/Userland
Brian Gianforcaro 2038d2c49e LibELF: Apply some minor optimizations to symbol lookup
Optimizations:

- Make sure `DT_SYMTAB` is a string view literal, instead of string.

- DynamicObject::HashSection::lookup_sysv_symbol should be using
  raw_name() from symbol comparison to avoid needlessly calling
  `strlen`, when the StrinView::operator= walks the cstring without
  calling `strlen` first.

- DynamicObject::HashSection::lookup_gnu_symbol shouldn't create a
  symbol unless we know the hashes match first.

In order to test these changes I enabled Undefined behavior sanitizer
which creates a huge amount of relocations, and then ran the browser
with the help argument 100 times. The browser is a fairly big app with
a few different libraries being loaded, so it seemed liked a good
target.

Command: `time -n 100 br --help`

Before:
```
Timing report:
==============
Command:         br --help
Average time:    3897.679931 ms
Excluding first: 3901.242431 ms
```

After:
```
Timing report:
==============
Command:         br --help
Average time:    3612.860107 ms
Excluding first: 3613.54541 ms
```
2021-08-28 20:03:08 +02:00
..
Applets
Applications MailSettings: Remove proc and exec from pleges 2021-08-28 11:26:32 +01:00
Demos
DevTools UserspaceEmulator: Profiles are now expected to have a strings array 2021-08-28 20:03:08 +02:00
DynamicLoader CMake: Let Meta/serenity.sh run aarch64 make it past cmake 2021-08-28 14:43:07 +01:00
Games 2048: Remove wpath and cpath pledges 2021-08-28 12:22:16 +04:30
Libraries LibELF: Apply some minor optimizations to symbol lookup 2021-08-28 20:03:08 +02:00
Services WindowServer: Always return properly cropped bitmap 2021-08-28 08:18:41 +01:00
Shell Shell: Use a relative path in builtin_cd for chdir if possible 2021-08-28 20:02:27 +02:00
Utilities ps: Sort using input order in case of -q 2021-08-28 15:08:00 +04:30
CMakeLists.txt