Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (Cyborg)
  • No Skin
Collapse
Brand Logo

CIRCLE WITH A DOT

  1. Home
  2. Uncategorized
  3. i have seen true evil.

i have seen true evil.

Scheduled Pinned Locked Moved Uncategorized
13 Posts 5 Posters 0 Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • libreleah@mas.toL libreleah@mas.to

    i have seen true evil. yes.

    mozilla firefox has a custom allocator that redefines/macros a bunch of malloc/free calls. it does this to intercept them, calling the real (system) allocator sparingly in large chunks, and its own for small allocations. useful for optimising lots of small allocations.

    the code doesn't match obsd. llvm 19 was ok, 20+ is stricter. re-trying librewolf 149 build on obsd current, wiith llvm 19... otherwise i'll just build with --disable-jemalloc (i want to avoid that)

    Link Preview Image
    libreleah@mas.toL This user is from outside of this forum
    libreleah@mas.toL This user is from outside of this forum
    libreleah@mas.to
    wrote last edited by
    #2

    i *will* have librewolf 149 compiling, TONIGHT, on openbsd -CURRENT

    if building with llvm 19 still dosen't work, i'm going to gut mozilla's allocator myself, fixing all the declarations by hand.

    using the system allocator directly (no intercept functions) is possible using --disable-jemalloc in ./configure, when building mozilla code. but that means using openbsd's... slow allocator, for every allocation. and that would make the javascript engine slow as molasses.

    mozilla firefox is a sin.

    libreleah@mas.toL 1 Reply Last reply
    0
    • libreleah@mas.toL libreleah@mas.to

      i *will* have librewolf 149 compiling, TONIGHT, on openbsd -CURRENT

      if building with llvm 19 still dosen't work, i'm going to gut mozilla's allocator myself, fixing all the declarations by hand.

      using the system allocator directly (no intercept functions) is possible using --disable-jemalloc in ./configure, when building mozilla code. but that means using openbsd's... slow allocator, for every allocation. and that would make the javascript engine slow as molasses.

      mozilla firefox is a sin.

      libreleah@mas.toL This user is from outside of this forum
      libreleah@mas.toL This user is from outside of this forum
      libreleah@mas.to
      wrote last edited by
      #3

      here's a thought: maybe *DON'T* redeclare kernel functions in your codebase? if you're having to write your own allocator, then you are hacking around a much deeper problem. but this is mozilla. anything is possible.

      vlkrs@bsd.networkV thelancashireman@hostux.socialT ozzelot@mstdn.socialO libreleah@mas.toL noisytoot@berkeley.edu.plN 5 Replies Last reply
      0
      • libreleah@mas.toL libreleah@mas.to

        here's a thought: maybe *DON'T* redeclare kernel functions in your codebase? if you're having to write your own allocator, then you are hacking around a much deeper problem. but this is mozilla. anything is possible.

        vlkrs@bsd.networkV This user is from outside of this forum
        vlkrs@bsd.networkV This user is from outside of this forum
        vlkrs@bsd.network
        wrote last edited by
        #4

        @libreleah I didn't look deeply into librewolf, but firefox 149.0.2 hums along nicely on -current here, why not base your work on the existing port?

        libreleah@mas.toL 1 Reply Last reply
        0
        • vlkrs@bsd.networkV vlkrs@bsd.network

          @libreleah I didn't look deeply into librewolf, but firefox 149.0.2 hums along nicely on -current here, why not base your work on the existing port?

          libreleah@mas.toL This user is from outside of this forum
          libreleah@mas.toL This user is from outside of this forum
          libreleah@mas.to
          wrote last edited by
          #5

          @vlkrs yeah, no idea why firefox builds on current. (though i didn't test-build that)

          have a look here: https://codeberg.org/vimuser/librewolf-openbsd-port

          i removed use of www/mozilla and put everything in one place. standalone port.

          builds fine with llvm 19 on openbsd 7.8, when you use my stable-7.8 branch (uses librewolf 143)

          149 (master branch on my port repo) needs some work. i'm rebuilding with

          MODCLANG_VERSION = 19

          hopefully that'll fix it for now. and either i, or upstream, will fix mozilla's allocator later.

          vlkrs@bsd.networkV 1 Reply Last reply
          0
          • libreleah@mas.toL libreleah@mas.to

            @vlkrs yeah, no idea why firefox builds on current. (though i didn't test-build that)

            have a look here: https://codeberg.org/vimuser/librewolf-openbsd-port

            i removed use of www/mozilla and put everything in one place. standalone port.

            builds fine with llvm 19 on openbsd 7.8, when you use my stable-7.8 branch (uses librewolf 143)

            149 (master branch on my port repo) needs some work. i'm rebuilding with

            MODCLANG_VERSION = 19

            hopefully that'll fix it for now. and either i, or upstream, will fix mozilla's allocator later.

            vlkrs@bsd.networkV This user is from outside of this forum
            vlkrs@bsd.networkV This user is from outside of this forum
            vlkrs@bsd.network
            wrote last edited by
            #6

            @libreleah Well, I guess I should have looked at your librewolf WIP before commenting

            1 Reply Last reply
            0
            • libreleah@mas.toL libreleah@mas.to

              here's a thought: maybe *DON'T* redeclare kernel functions in your codebase? if you're having to write your own allocator, then you are hacking around a much deeper problem. but this is mozilla. anything is possible.

              thelancashireman@hostux.socialT This user is from outside of this forum
              thelancashireman@hostux.socialT This user is from outside of this forum
              thelancashireman@hostux.social
              wrote last edited by
              #7

              @libreleah

              There are some interesting edge cases where redefining malloc etc. is useful. Imagine a safety process that has specific requirements like near-constant time, no chance of a failure to allocate, etc.

              But I wouldn't say a browser falls into that category ...

              libreleah@mas.toL 1 Reply Last reply
              0
              • thelancashireman@hostux.socialT thelancashireman@hostux.social

                @libreleah

                There are some interesting edge cases where redefining malloc etc. is useful. Imagine a safety process that has specific requirements like near-constant time, no chance of a failure to allocate, etc.

                But I wouldn't say a browser falls into that category ...

                libreleah@mas.toL This user is from outside of this forum
                libreleah@mas.toL This user is from outside of this forum
                libreleah@mas.to
                wrote last edited by
                #8

                @TheLancashireman i mean, i wrap malloc in my programs too (mostly to check nulls and such - and i wrap free and make it set a pointer to null after freeing - and my malloc wrapper will err if being given a pointer that isn't null).

                but directly redefining functions, yeah, that's evil.

                1 Reply Last reply
                0
                • libreleah@mas.toL libreleah@mas.to

                  here's a thought: maybe *DON'T* redeclare kernel functions in your codebase? if you're having to write your own allocator, then you are hacking around a much deeper problem. but this is mozilla. anything is possible.

                  ozzelot@mstdn.socialO This user is from outside of this forum
                  ozzelot@mstdn.socialO This user is from outside of this forum
                  ozzelot@mstdn.social
                  wrote last edited by
                  #9

                  @libreleah
                  Aaaaaaaaaaa

                  1 Reply Last reply
                  0
                  • libreleah@mas.toL libreleah@mas.to

                    here's a thought: maybe *DON'T* redeclare kernel functions in your codebase? if you're having to write your own allocator, then you are hacking around a much deeper problem. but this is mozilla. anything is possible.

                    libreleah@mas.toL This user is from outside of this forum
                    libreleah@mas.toL This user is from outside of this forum
                    libreleah@mas.to
                    wrote last edited by
                    #10

                    fuck u mozilla

                    --- memory/build/mozjemalloc.cpp.orig
                    +++ memory/build/mozjemalloc.cpp
                    @@ -5257,7 +5257,7 @@ static void replace_malloc_init_funcs(malloc_table_t* table) {
                    #endif

                    #define NOTHROW_MALLOC_DECL(...) \
                    - MOZ_MEMORY_API MACRO_CALL(GENERIC_MALLOC_DECL, (noexcept(true), __VA_ARGS__))
                    + MOZ_MEMORY_API MACRO_CALL(GENERIC_MALLOC_DECL, (, __VA_ARGS__))

                    u will not defeat me mozilla

                    1 Reply Last reply
                    0
                    • libreleah@mas.toL libreleah@mas.to

                      here's a thought: maybe *DON'T* redeclare kernel functions in your codebase? if you're having to write your own allocator, then you are hacking around a much deeper problem. but this is mozilla. anything is possible.

                      noisytoot@berkeley.edu.plN This user is from outside of this forum
                      noisytoot@berkeley.edu.plN This user is from outside of this forum
                      noisytoot@berkeley.edu.pl
                      wrote last edited by
                      #11
                      @libreleah malloc isn't a kernel function, it's part of libc
                      libreleah@mas.toL 1 Reply Last reply
                      2
                      0
                      • R relay@relay.infosec.exchange shared this topic
                        R relay@relay.an.exchange shared this topic
                      • noisytoot@berkeley.edu.plN noisytoot@berkeley.edu.pl
                        @libreleah malloc isn't a kernel function, it's part of libc
                        libreleah@mas.toL This user is from outside of this forum
                        libreleah@mas.toL This user is from outside of this forum
                        libreleah@mas.to
                        wrote last edited by
                        #12

                        @noisytoot how asinine. yes, technically you are correct, but what, pray tell, implements said allocator that malloc returns pointers from?

                        noisytoot@berkeley.edu.plN 1 Reply Last reply
                        0
                        • libreleah@mas.toL libreleah@mas.to

                          @noisytoot how asinine. yes, technically you are correct, but what, pray tell, implements said allocator that malloc returns pointers from?

                          noisytoot@berkeley.edu.plN This user is from outside of this forum
                          noisytoot@berkeley.edu.plN This user is from outside of this forum
                          noisytoot@berkeley.edu.pl
                          wrote last edited by
                          #13
                          @libreleah it's using syscalls implemented by the kernel (mmap and/or brk probably), but those aren't what firefox is reimplementing

                          whatever firefox is doing does seem to break LD_PRELOADing another allocator, which is annoying. when I tried LD_PRELOADing mimalloc globally on alpine it broke audio/video playback
                          1 Reply Last reply
                          1
                          0
                          Reply
                          • Reply as topic
                          Log in to reply
                          • Oldest to Newest
                          • Newest to Oldest
                          • Most Votes


                          • Login

                          • Login or register to search.
                          • First post
                            Last post
                          0
                          • Categories
                          • Recent
                          • Tags
                          • Popular
                          • World
                          • Users
                          • Groups