Age | Commit message (Collapse) | Author |
|
This fixes Dynamic Loader crash because of an unresolved LibCore symbol
|
|
..status
|
|
|
|
Previously, some hunks of the t-slibgcc patch failed to apply
|
|
|
|
We can now build the porst with the shared libraries toolchain.
|
|
|
|
When loading dynamic objects, the emulator loads the interpreter,
generates an auxiliary vector and starts executing the loader.
Additionally, this commits also makes the MallocTracer and backtrace
symbolication work for dynamically loaded programs.
|
|
|
|
If a MmapRegion is file backed, we need to call mprotect on its
underlying pages.
|
|
|
|
|
|
|
|
These coredumps will be used by the Profile Viewer to symbolicate the
profiling samples.
|
|
|
|
This allows us to have the implementation of __cxa_demangle in libc.so.
|
|
Currently we only print a backtrace. In the future, we could do something nice in the GUI.
|
|
|
|
|
|
Demangling is currently not supported with shared libraries, but we will fix this soon :)
|
|
|
|
|
|
DirectoryWatcher is a wrapper around watch_file, and can be used to
watch for changes in directories.
|
|
This allows userspace code to parse these events.
|
|
When a process crashes, we generate a coredump file and write it in
/tmp/coredumps/.
The coredump file is an ELF file of type ET_CORE.
It contains a segment for every userspace memory region of the process,
and an additional PT_NOTE segment that contains the registers state for
each thread, and a additional data about memory regions
(e.g their name).
|
|
The dynamic loader is now stable enough to be used everywhere in the
system - so this commit does just that.
No More .a Files, Long Live .so's!
|
|
|
|
This is the shared version of libgcc
|
|
We now compile everything with -static flag so libc.a would be use
|
|
|
|
|
|
The dynamic loader exists as /usr/lib/Loader.so and is loaded by the
kernel when ET_DYN programs are executed.
The dynamic loader is responsible for loading the dependencies of the
main program, allocating TLS storage, preparing all loaded objects for
execution and finally jumping to the entry of the main program.
|
|
When this flag is defined, LibC does not use TLS.
It will be useful for the dynamic loader.
|
|
|
|
|
|
This adds an allocate_tls syscall through which a userspace process
can request the allocation of a TLS region with a given size.
This will be used by the dynamic loader to allocate TLS for the main
executable & its libraries.
|
|
When the main executable needs an interpreter, we load the requested
interpreter program, and pass to it an open file decsriptor to the main
executable via the auxiliary vector.
Note that we do not allocate a TLS region for the interpreter.
|
|
This command outputs the memory contents of a given address as an
unsigned int.
LibDebug already had support for this, so just a matter of intergating
it in sdb.
Very useful :)
|
|
Previously, we only accepted addresses that started with digits
'0'-'9', which was not correct because we expect addresses to be in
base 16.
We now expect addresses to be written with '0x' prefix, e.g 0xdeadbeef.
|
|
From the spec: https://tc39.es/ecma262/#sec-punctuators
OptionalChainingPunctuator ::
?. [lookahead ∉ DecimalDigit]
We were missing the lookahead and therefore incorrectly treating any
'?.' as TokenType::QuestionMarkPeriod.
Fixes #4409.
|
|
|
|
This looks just so right in the taskbar. :^)
|
|
|
|
FileManager windows now alternate between the old-style location text
box and a new-style breadcrumb bar. The location bar shows up when you
try to edit the location (with Ctrl+L) and disappears once the textbox
loses focus.
The textbox and breadcrumb bar are mutually exclusive to keep it tidy.
|
|
This can be used to implement segmented path bars in FileManager and
wherever else wanted.
|
|
If a hook triggers the deletion of the GUI::Button, we would be unable
to proceed in a well-defined manner here, so let's protect ourselves.
This probably needs to be done in a whole lot of places, since GUI
widgets are just ref-counted Core::Objects and running arbitrary code
can mean that they get deleted.
|
|
|
|
Let's start moving away from using raw strings for CSS identifiers.
The idea here is to use IdentifierStyleValue with a CSS::ValueID inside
for all CSS identifier values.
|
|
Parse out the font-family, font-size and font-weight values from CSS
and use them to perform a kinda-best-effort lookup against the system
font library.
We also now handle standard font names like "sans-serif", "monospace"
and others.
|
|
And use this to simplify comparing two IdentifierStyleValues.
|