Commit graph

41555 commits

Author SHA1 Message Date
Daniel Bertalan 41a8f3f40f Lagom: Link LibMain statically
This matches how LibMain is used within Serenity. This commit makes it
possible to build Lagom with LTO. Previously, `serenity_main` functions
would be dead-stripped away, as the linker could prove that nothing from
the executable ever called them.
2022-10-01 20:39:48 +02:00
DJtheRedstoner add7dd66f6 Ports/OpenJDK: Use posix_fallocate 2022-10-01 19:17:50 +01:00
DJtheRedstoner bd08587ac9 Ports/OpenJDK: Update for the removal of StringView(char const*) 2022-10-01 19:17:50 +01:00
Xexxa 8b2683a070 Base: Adjust size of emoji U+1F1F8_U+1F1EF
🇸🇯 - U+1F1F8 U+1F1EF FLAG: SVALBARD & JAN MAYEN
2022-10-01 19:02:53 +01:00
Tim Schumacher eb6c911b3a Toolchain: Hardcode the results of LLVM runtime library detection
This keeps us from accidentally building toolchains that don't make it
through a clean build if we build them using a populated sysroot, as it
would otherwise detect libpthread and friends and try to pull them in
while LibC is not yet built.
2022-10-01 18:59:51 +01:00
Xexxa 47c428dbe3 Base: Adjust size of emoji U+1F1F5_U+1F1E6
🇵🇦 - U+1F1F5 U+1F1E6 FLAG: PANAMA
2022-10-01 18:58:30 +01:00
Xexxa d336dbc514 Base: Adjust size of emoji U+1F1EF_U+1F1F2
🇯🇲 - U+1F1EF U+1F1F2 FLAG: JAMAICA
2022-10-01 18:44:05 +01:00
Tim Schumacher b52b6e8739 Toolchain: Only reextract GCC-related tarballs if patches change
This brings the behaviour in line with Clang, which already does this
since a few revisions.
2022-10-01 18:43:29 +01:00
Tim Schumacher 1faca15193 Toolchain: Move the binutils patch into its own folder
This makes binutils compatible with `./package.sh dev`, so that we can
regenerate patches more easily, and neatly stack (temporary) patches on
top.
2022-10-01 18:43:29 +01:00
Idan Horowitz 7578039188 LibHTTP: Use 'close' as the default value for Connection in HTTP/1.0
Unlike HTTP/1.1 and above, the default behaviour for HTTP/1.0 servers
is to close the connection after sending the response.
2022-10-01 19:37:01 +02:00
Liav A 66bde66f49 Kernel/aarch64: Use adopt_lock_ref to instantiate an InterruptController 2022-10-01 19:36:04 +02:00
Xexxa dd6e70afd6 Base: Adjust size of emoji U+1F1E7_U+1F1FE
🇧🇾 - U+1F1E7 U+1F1FE FLAG: BELARUS
2022-10-01 17:04:12 +01:00
Mykola 47e0c2b11c Base: Add some emojis
New:
    🎏 - U+1F38F CARP STREAMER
    🇮🇲 - U+1F1EE U+1F1F2 FLAG: ISLE OF MAN
    🇰🇭 - U+1F1F0 U+1F1ED FLAG: CAMBODIA
    🇱🇾 - U+1F1F1 U+1F1FE FLAG: LIBYA
    🇲🇴 - U+1F1F2 U+1F1F4 FLAG: MACAO SAR CHINA
    🇲🇵 - U+1F1F2 U+1F1F5 FLAG: NORTHERN MARIANA ISLANDS
    🇲🇽 - U+1F1F2 U+1F1FD FLAG: MEXICO
    🇵🇰 - U+1F1F5 U+1F1F0 FLAG: PAKISTAN
    🇵🇹 - U+1F1F5 U+1F1F9 FLAG: PORTUGAL
    🇸🇦 - U+1F1F8 U+1F1E6 FLAG: SAUDI ARABIA
    🇹🇲 - U+1F1F9 U+1F1F2 FLAG: TURKMENISTAN
    🇹🇳 - U+1F1F9 U+1F1F3 FLAG: TUNISIA
    🇻🇦 - U+1F1FB U+1F1E6 FLAG: VATICAN CITY
    🇻🇮 - U+1F1FB U+1F1EE FLAG: U.S. VIRGIN ISLANDS
    🇻🇺 - U+1F1FB U+1F1FA FLAG: VANUATU
    🇼🇫 - U+1F1FC U+1F1EB FLAG: WALLIS & FUTUNA
    🇾🇹 - U+1F1FE U+1F1F9 FLAG: MAYOTTE
Modified:
    🇪🇪 - U+1F1EA U+1F1EA FLAG: ESTONIA
2022-10-01 16:09:50 +01:00
Idan Horowitz 5c814e66b3 LibJS: Store symbols in a Handle inside PropertyKey
If the stored symbol is custom (non-global), it is allocated on the
heap, and may not be visited by anyone else, so we must register it in
order to keep it alive.
2022-10-01 15:36:20 +01:00
Idan Horowitz 4aade74b91 LibJS: Include Environment.h directly in ClassFieldDefinition.h
This was previously indirectly forcing Heap/Handle.h to include it
instead. This will let us include Handle.h from PropertyKey, which will
allow us to solve a different issue.
2022-10-01 15:36:20 +01:00
Joel Hansen cd07521ed8 Base: Add new emoji
🛰️ - U+1F6F0 Satellite
🦆 - U+1F986 Duck
🦜 - U+1F99C Parrot
🦞 - U+1F99E Lobster
🧽 - U+1F9FD Sponge
🩵 - U+1FA75 Light Blue Heart
🩶 - U+1FA76 Grey Heart
🩷 - U+1FA77 Pink Heart
🪕 - U+1FA95 Banjo
🫨 - U+1FAE8 Shaking Face
2022-10-01 13:26:26 +01:00
Timon Kruiper 779a1d1232 Kernel/aarch64: Get framebuffer data from BootFramebufferConsole
The BootFramebufferConsole class maps the framebuffer using the
MemoryManager, so to be able to draw the logo, we need to get this
mapped framebuffer. This commit adds a unsafe API for that.
2022-10-01 14:09:01 +02:00
Timon Kruiper 15b818cd57 Kernel/aarch64: Remove specific aarch64 code in BootFramebufferConsole
The MemoryManager now works, so we can use the same code as on x86 to
map the framebuffer. Since it uses the MemoryManager, the initialization
of the BootFramebufferConsole has to happen after the MemoryManager is
working.
2022-10-01 14:09:01 +02:00
Timon Kruiper 57b1369475 Kernel/aarch64: Put correct memory size in multiboot_mmap
Also enable the MMU earlier in the boot process.
2022-10-01 14:09:01 +02:00
Timon Kruiper c2e410195a Kernel/aarch64: Set up pointer to kernel page directory
The MemoryManager uses this pointer to adds its newly created page
tables to the kernel page directory.
2022-10-01 14:09:01 +02:00
Timon Kruiper 96f73c9289 Kernel/aarch64: Set up quickmap infrastructure in initial page tables
With this change the quickmap related functions in MemoryManager
actually work. :^)
2022-10-01 14:09:01 +02:00
Timon Kruiper a62732ee2f Kernel/aarch64: Only identity map kernel image, instead of all of RAM
For the initial page tables we only need to identity map the kernel
image, the rest of the memory will be managed by the MemoryManager. The
linker script is updated to get the kernel image start and end
addresses.
2022-10-01 14:09:01 +02:00
Timon Kruiper cdf59c86ac Kernel: Make PageDirectory.h architecture specific
The page table and page directory formats are architecture specific, so
move the headers into the Arch directory. Also move the aarch64 page
table constants from aarch64/MMU.cpp to aarch64/PageDirectory.h.
2022-10-01 14:09:01 +02:00
Timon Kruiper ad5e8bbb4f Kernel: Add ability to dump backtrace from provided frame pointer
When an exception happens it is sometimes hard to figure out where
exactly the exception happened, so use the frame pointer of the trap
frame to print a backtrace.
2022-10-01 14:09:01 +02:00
Timon Kruiper 57901a6f62 Kernel/aarch64: Implement tlb flushing
This initial implementation flushes the complete tlb cache. A FIXME is
added to implement the partial tlb flushing.
2022-10-01 14:09:01 +02:00
Timon Kruiper 424a974e01 Kernel: Don't reserve Low Memory (0-1MB) on non-x86 architectures
This memory is only reserved on x86(-64) and is usable on other
architectures.
2022-10-01 14:09:01 +02:00
Timon Kruiper 1b60126d93 Kernel/aarch64: Stub Inode::{read,write}_bytes
Recent changes caused the build to fail for aarch64, with these
functions stubbed it builds again.
2022-10-01 14:09:01 +02:00
MacDue 240fb93cf1 LibWeb: Remove FIXME for double-position linear-gradient() color stops
I added these in #14977, but forgot to remove this FIXME.
2022-10-01 14:08:01 +02:00
Luke Wilde 082abf9998 Base: Add rotateX, rotateY, rotateZ and matrix3d examples for transform 2022-10-01 14:07:47 +02:00
Luke Wilde dbe12662b8 LibWeb: Implement matrix3d transform function from css-transforms-2 2022-10-01 14:07:47 +02:00
Luke Wilde 0fdd924db2 LibWeb: Implement rotation transform functions from css-transforms-2 2022-10-01 14:07:47 +02:00
MacDue ddfe18783b Magnifier: Don't error if cancelling capture save 2022-10-01 14:06:53 +02:00
Luke Wilde 540c307009 LibWeb: Implement Element.insertAdjacentText 2022-10-01 14:06:40 +02:00
Luke Wilde d540e2ec98 LibWeb: Implement Element.insertAdjacentElement 2022-10-01 14:06:40 +02:00
thankyouverycool f27f2e0d3b Welcome: Use StandardPaths to load README.md 2022-10-01 13:39:10 +03:30
thankyouverycool 12b9c0ce7f Welcome: Add new tips 2022-10-01 13:39:10 +03:30
thankyouverycool a6b8ac10f7 Welcome: Use fallible try_create_default_icon() 2022-10-01 13:39:10 +03:30
thankyouverycool 9fe5cadcc8 Welcome: Update GML
Moves more settings to GML to simplify construction and replaces
deprecated GML properties.
2022-10-01 13:39:10 +03:30
thankyouverycool ca54a965a0 Welcome: Port to Core::Stream 2022-10-01 13:39:10 +03:30
thankyouverycool bd66453e8d LibCore: Add documents_directory() to StandardPaths 2022-10-01 13:39:10 +03:30
thankyouverycool 72c0414a58 Welcome: Remove unnecessary include 2022-10-01 13:39:10 +03:30
thankyouverycool 929f31f564 Welcome: Add/remove SystemServer group entry to toggle startup
Previously Welcome relied on a bogus executable key value to disable
startup. This always printed an error on login and littered the config
file with a useless entry. Adding/removing the group as needed seems
a bit nicer.
2022-10-01 13:39:10 +03:30
thankyouverycool be3cc756fc config: Enable adding and removing groups 2022-10-01 13:39:10 +03:30
thankyouverycool c34f2e75e9 LibCore+LibConfig+ConfigServer: Add Config::{add,remove}_group()
Plumbs synchronous calls for adding and removing group entries to
config files. This is useful for services like SystemServer which
default to group names for executable paths, and for removing all
keys at once.
2022-10-01 13:39:10 +03:30
thankyouverycool 6f394d9ee2 LibConfig+ConfigServer: Make remove_key() synchronous
Previously, when removing keys, the config utility terminated its
connection before changes could be synced.
2022-10-01 13:39:10 +03:30
Tim Schumacher be6b3710c8 Ports/qemu: Use the coarse monotonic clock for timing CPU ticks
While this loses quite a bit of accuracy (although to no apparent
decrease in emulation quality) , it helps avoiding the additional
overhead of the `clock_gettime` syscall (as `CLOCK_MONOTONIC_COARSE`
is forwarded using the mapped time page) and we don't have to do a
HPET timer read for each tick.

This results in a decrease of Serenity boot time from 1h16m down to
42m when running on Serenity.
2022-09-30 20:13:11 -07:00
Nico Weber a934fa3d28 AK: Fix a comment typo 2022-09-30 20:09:26 -07:00
Nico Weber b0c0ebc543 Kernel: Fix a comment typo 2022-09-30 20:09:26 -07:00
Hendiadyoin1 911506af9f LibJS: Align Instructions as void* and roundup variably sized ones sizes
Both is indeed needed,
the standard alignment would have been 4, but some Instructions, like
Jumps need an alignment of 8

Fixes #12127.
2022-10-01 00:04:02 +01:00
Hendiadyoin1 89408d5f64 LibJS: Handle argument spreading in the bytecode vm 2022-10-01 00:04:02 +01:00