1. 22 Sep, 2020 1 commit
  2. 17 Aug, 2020 3 commits
  3. 15 Aug, 2020 1 commit
  4. 14 Aug, 2020 1 commit
  5. 12 Aug, 2020 7 commits
    • 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.
    • 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.
    • 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.
    • 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.
    • jD91mZM2's avatar
      Merge branch 'lD_PATH' into 'master' · 7b6ba2c7
      jD91mZM2 authored
      L d path
      See merge request redox-os/relibc!300
    • 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
    • jD91mZM2's avatar
      Merge branch 'elf_And_flock' into 'master' · b9828bd8
      jD91mZM2 authored
      Elf and flock
      See merge request !283
  6. 11 Aug, 2020 1 commit
    • jD91mZM2's avatar
      Run Linux tests in CI · d827c0f1
      jD91mZM2 authored
      commit 09cb17e66f46c6687fa0b9dc0895ad3279caa092
      Author: jD91mZM2 <me@krake.one>
      Date:   Mon Aug 10 18:03:20 2020 +0200
          comment out cargo tests
      commit 1915c7306e40f5c6af36b04c765e25ad9ffe9d16
      Author: jD91mZM2 <me@krake.one>
      Date:   Mon Aug 10 17:58:52 2020 +0200
          Update redoxer docker image
  7. 08 Aug, 2020 3 commits
    • Jeremy Soller's avatar
      Merge branch 'weaken_floattidf' into 'master' · 91f0be87
      Jeremy Soller authored
      Also weaken `__floattidf`
      See merge request redox-os/relibc!299
    • 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) {
        // 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) {
        // release lock for bytes in range [10; 15)
        fl.l_type = F_UNLCK;
        if (fcntl(fd, F_SETLK, &fl) == -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
    • Ahmed Abd El Mawgood's avatar
      Add elf.h header to relibc · e14b3e09
      Ahmed Abd El Mawgood authored
  8. 07 Aug, 2020 2 commits
  9. 05 Aug, 2020 1 commit
  10. 04 Aug, 2020 2 commits
  11. 03 Aug, 2020 2 commits
  12. 02 Aug, 2020 7 commits
  13. 30 Jul, 2020 3 commits
  14. 25 Jul, 2020 3 commits
  15. 20 Jul, 2020 1 commit
  16. 19 Jul, 2020 2 commits