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 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
    #1

    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 1 Reply Last reply
    0
    • 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