Skip to content
Snippets Groups Projects
  1. Sep 29, 2020
  2. Sep 28, 2020
    • 8tab's avatar
      Add symlink from libc.so to libc.so.6 · c000373a
      8tab authored
      Typically it's the other way around, but we can't have shared library named libc.so.6 in target/release directory.
      cargo includes 'target/release' in LD_LIBRARY_PATH for build script, so even if clean build runs fine,
      every subsquent run will make build script link with relibc.
      c000373a
  3. Sep 17, 2020
  4. Sep 10, 2020
  5. Sep 08, 2020
  6. Sep 06, 2020
  7. Aug 27, 2020
  8. Aug 25, 2020
  9. Aug 23, 2020
  10. Aug 22, 2020
  11. Aug 20, 2020
  12. Aug 17, 2020
  13. Aug 15, 2020
  14. Aug 14, 2020
  15. Aug 12, 2020
    • Ahmed Abd El Mawgood's avatar
      make all ld printlns happen in case of verbose = true and apply cargo fmt · ab92ff9d
      Ahmed Abd El Mawgood authored
      It seams that stdout of ld.so is not that much of an issue but actually
      it unfortunately is. The major problem here is that sometimes programs
      generate header files in stdout (./getmy_custom_headers > header.h) and
      we need to keep that cleen. and this is very very popular in gcc.
      ab92ff9d
    • Ahmed Abd El Mawgood's avatar
      Avoid relinking already linked libs · 7b29f6eb
      Ahmed Abd El Mawgood authored
      This patch avoids collecting symbols, resolving relocs if they are
      already done (usually for example libc.so during a dlopen for another
      libfoo.so). This patch is purely for performance boost.
      7b29f6eb
    • Ahmed Abd El Mawgood's avatar
      Refer to libraries with soname if available and avoid loading libs twice · 61fcc018
      Ahmed Abd El Mawgood authored
      It is usually not optimal to load a library twice and for specifics,
      it is **terrible** idea to load libc twice it was enough trouble
      dealing with libc statically linked into ld.so. So What this patch does
      it check for soname and if a library is already loaded it won't get
      loaded again. Why soname ? because unfortunately some bins gets linked
      againt libc.so while of their dependencies gets linked against
      libc.so.6 while one is usually symbolic link for the other.
      61fcc018
    • Ahmed Abd El Mawgood's avatar
      Add SONAME for libc.so · 9826cea0
      Ahmed Abd El Mawgood authored
      Usually it is possible to refer to library either by the file name or by
      elf "soname" soname is very similar for specifying something like
      (LIB/API version) combination so if for example you have ./prog that
      loads libx.so which is version 5.1.1 and there is ./plugin.so that ./prog
      would load that requires libx.so version 5.1.2 both libx.so should have
      the same soname to hint that they offer the exact same functionality.
      And this patch specifies the soname for relibc libc.so.
      9826cea0
    • jD91mZM2's avatar
      Merge branch 'lD_PATH' into 'master' · 7b6ba2c7
      jD91mZM2 authored
      L d path
      
      See merge request !300
      7b6ba2c7
    • Ahmed Abd El Mawgood's avatar
      Modify ld_script so that it works on linux. · 40328a0d
      Ahmed Abd El Mawgood authored and jD91mZM2's avatar jD91mZM2 committed
      Honestly, I have no idea why are these modifications needed, but it
      seams they are needed
      40328a0d
    • jD91mZM2's avatar
      Merge branch 'elf_And_flock' into 'master' · b9828bd8
      jD91mZM2 authored
      Elf and flock
      
      See merge request !283
      b9828bd8
  16. Aug 11, 2020
    • jD91mZM2's avatar
      Run Linux tests in CI · d827c0f1
      jD91mZM2 authored
      commit 09cb17e6
      Author: jD91mZM2 <me@krake.one>
      Date:   Mon Aug 10 18:03:20 2020 +0200
      
          comment out cargo tests
      
      commit 1915c730
      Author: jD91mZM2 <me@krake.one>
      Date:   Mon Aug 10 17:58:52 2020 +0200
      
          Update redoxer docker image
      d827c0f1
  17. Aug 08, 2020
    • Jeremy Soller's avatar
      Merge branch 'weaken_floattidf' into 'master' · 91f0be87
      Jeremy Soller authored
      Also weaken `__floattidf`
      
      See merge request !299
      91f0be87
    • Ahmed Abd El Mawgood's avatar
      Add (POSIX defined) struct flock · b5deadbe
      Ahmed Abd El Mawgood authored
      struct flock is posix defined locking mechanism on *nix platform
      
      Example usage (copied from https://gavv.github.io/articles/file-locks/) :
      
        #include <fcntl.h>
      
        struct flock fl;
        memset(&fl, 0, sizeof(fl));
      
        // lock in shared mode
        fl.l_type = F_RDLCK;
      
        // lock entire file
        fl.l_whence = SEEK_SET; // offset base is start of the file
        fl.l_start = 0;         // starting offset is zero
        fl.l_len = 0;           // len is zero, which is a special value representing end
                              // of file (no matter how large the file grows in future)
      
        fl.l_pid = 0; // F_SETLK(W) ignores it; F_OFD_SETLK(W) requires it to be zero
      
        // F_SETLKW specifies blocking mode
        if (fcntl(fd, F_SETLKW, &fl) == -1) {
          exit(1);
        }
      
        // atomically upgrade shared lock to exclusive lock, but only
        // for bytes in range [10; 15)
        //
        // after this call, the process will hold three lock regions:
        //  [0; 10)        - shared lock
        //  [10; 15)       - exclusive lock
        //  [15; SEEK_END) - shared lock
        fl.l_type = F_WRLCK;
        fl.l_start = 10;
        fl.l_len = 5;
      
        // F_SETLKW specifies non-blocking mode
        if (fcntl(fd, F_SETLK, &fl) == -1) {
            exit(1);
        }
      
        // release lock for bytes in range [10; 15)
        fl.l_type = F_UNLCK;
      
        if (fcntl(fd, F_SETLK, &fl) == -1) {
            exit(1);
        }
      
        // close file and release locks for all regions
        // remember that locks are released when process calls close()
        // on any descriptor for a lock file
        close(fd);
      b5deadbe
Loading