summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2020-12-14Chess: Add LibCore as a dependencyItamar
This fixes Dynamic Loader crash because of an unresolved LibCore symbol
2020-12-14Kernel: Don't generate a backtrace when a process exists with non-zeroItamar
..status
2020-12-14Lagom/Fuzzers: Fix creation of ELF::LoaderItamar
2020-12-14Toolchain+Ports: Fix gcc patch fileItamar
Previously, some hunks of the t-slibgcc patch failed to apply
2020-12-14Loader: Don't re-load self-dependant librariesItamar
2020-12-14Toolchain: Fix usage of libgcc_s & build PIE executables by defaultItamar
We can now build the porst with the shared libraries toolchain.
2020-12-14CrashDaemon: Show source position in backtraceItamar
2020-12-14UserspaceEmulator: Support dynamically loaded programsItamar
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.
2020-12-14UserspaceEmulator: Support the name argument in mmap for file backed mappingsItamar
2020-12-14UserspaceEmulator: Update memory protection of underlying pagesItamar
If a MmapRegion is file backed, we need to call mprotect on its underlying pages.
2020-12-14LibELF: Move the implementation of find_demangled_function to ELF::ImageItamar
2020-12-14LibC: Also build a static version of libcItamar
2020-12-14Profiler: Symbolicate samples using coredump fileItamar
2020-12-14Kernel: Generate coredumps for profiled processesItamar
These coredumps will be used by the Profile Viewer to symbolicate the profiling samples.
2020-12-14Kernel: Pass full path of output coredump file to CoreDumpItamar
2020-12-14LibC: Link statically with libstdc++Itamar
This allows us to have the implementation of __cxa_demangle in libc.so.
2020-12-14CrashDaemon: Add service that acts on new coredumpsItamar
Currently we only print a backtrace. In the future, we could do something nice in the GUI.
2020-12-14LibCoreDump: Add library for parsing coredump filesItamar
2020-12-14LibELF: Allow using ELF::Loader for ET_CORE objectsItamar
2020-12-14LibELF: Temporarily disable name demanglingItamar
Demangling is currently not supported with shared libraries, but we will fix this soon :)
2020-12-14LibELF: Refactor coredump notes section structuresItamar
2020-12-14Loader: Take main program name from auxiliary vectorItamar
2020-12-14LibCore: Add DirectoryWatcherItamar
DirectoryWatcher is a wrapper around watch_file, and can be used to watch for changes in directories.
2020-12-14Kernel: Move InodeWatcher::Event into Kernel/API/InodeWatcherEventItamar
This allows userspace code to parse these events.
2020-12-14Kernel: Generate a coredump file when a process crashesItamar
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).
2020-12-14Loader: Stabilize loader & Use shared libraries everywhere :^)Itamar
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!
2020-12-14Ports: Update gcc patch to support shared libsItamar
2020-12-14Build: Build libgcc_s.soItamar
This is the shared version of libgcc
2020-12-14LibC: Add libc.soItamar
We now compile everything with -static flag so libc.a would be use
2020-12-14Demos: Add "DynamicObjectDemo" to demo the dynamic loaderItamar
2020-12-14LibELF: Allow elf files with no section header to pass validationItamar
2020-12-14Loader: Add dynamic loader programItamar
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.
2020-12-14LibC: Add NO_TLS preprocessor flagItamar
When this flag is defined, LibC does not use TLS. It will be useful for the dynamic loader.
2020-12-14LibC: Make it possible to use ASSERTs without initializing stdioItamar
2020-12-14Toolchain: Configure the path to the dynamic linkerItamar
2020-12-14Kernel: Support TLS allocation from userspaceItamar
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.
2020-12-14Kernel: Add ability to load interpreter instead of main programItamar
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.
2020-12-14Debugger: Add 'examine' commandItamar
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 :)
2020-12-14Debugger: Fix CLI parsing of breakpoint addressesItamar
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.
2020-12-14LibJS: Don't treat '?.' followed by decimal digit as QuestionMarkPeriodLinus Groh
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.
2020-12-14LibWeb: Convert remaining CSS identifiers to use IdentifierStyleValueAndreas Kling
2020-12-14LibGfx: Draw checked buttons with a dithered base backgroundAndreas Kling
This looks just so right in the taskbar. :^)
2020-12-14LibGUI: Don't focus BreadcrumbBar segments on clickAndreas Kling
2020-12-14FileManager: Use GUI::BreadcrumbBar :^)Andreas Kling
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.
2020-12-14LibGUI: Add a basic BreadcrumbBar widget! :^)Andreas Kling
This can be used to implement segmented path bars in FileManager and wherever else wanted.
2020-12-14LibGUI: Protect GUI::Button across firing the on_click hookAndreas Kling
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.
2020-12-14LibWeb: Use IdentifierStyleValue for CSS 'position'Andreas Kling
2020-12-14LibWeb: Use CSS::ValueID for 'text-align' valuesAndreas Kling
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.
2020-12-14LibWeb: Improvements to font lookupAndreas Kling
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.
2020-12-14LibWeb: Virtualize StyleValue equality checkAndreas Kling
And use this to simplify comparing two IdentifierStyleValues.