1. 13 Jul, 2009 1 commit
  2. 10 Jul, 2009 1 commit
  3. 09 Jul, 2009 5 commits
  4. 25 Jun, 2009 2 commits
  5. 24 Jun, 2009 3 commits
  6. 23 Jun, 2009 1 commit
  7. 22 Jun, 2009 4 commits
  8. 17 Jun, 2009 3 commits
  9. 16 Jun, 2009 3 commits
  10. 15 Jun, 2009 1 commit
  11. 12 Jun, 2009 1 commit
  12. 05 Jun, 2009 1 commit
  13. 04 Jun, 2009 1 commit
  14. 03 Jun, 2009 3 commits
  15. 02 Jun, 2009 1 commit
    • David 'Digit' Turner's avatar
      Fix the C library initialization to avoid calling static C++ constructors twice. · 03eabfe6
      David 'Digit' Turner authored
      The problem was due to the fact that, in the case of dynamic executables,
      the dynamic linker calls the DT_PREINIT_ARRAY, DT_INIT and DT_INIT_ARRAY
      constructors when loading shared libraries and dynamic executables,
      *before* calling the executable's entry point (i.e. arch-$ARCH/bionic/crtbegin_dynamic.c)
      which in turns call __libc_init() in libc.so, as defined by bionic/libc_init_dynamic.c
      
      The latter did call these constructors array again, mistakenly.
      
      The patch also updates the documentation of many related functions.
      
      Also adds a new section to linker/README.TXT explaining restrictions on
      C library usage.
      
      The patch has been tested on a Dream for stability issues with
      proprietary blobs:
      
      - H264 decoding works
      - Camera + Video recording works
      - GPS works
      - Sensors work
      
      The tests in system/extra/tests/bionic/libc/common/test_static_cpp_mutex.cpp has been
      run and shows the static C++ constructor being called only once.
      03eabfe6
  16. 01 Jun, 2009 2 commits
  17. 28 May, 2009 6 commits
  18. 27 May, 2009 1 commit