Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Proudly breaking your toolchain

Bb2fd3b5456ad0012799b2045f4cd212?s=47 Miklos V
September 04, 2014

Proudly breaking your toolchain


Miklos V

September 04, 2014


  1. Proudly breaking your toolchain Miklos Vajna 2014­09­04

  2. 2 / 5 LibreOffice Conference 2014, Bern | Miklos Vajna

    Android • Gdb (README.Android): • Ld (tinderbox output): Some versions of the NDK had a broken gdb in the way that it can see symbols only for shlibs that were already loaded when the debuggee was attached, so you need to carefully guess where to put: fprintf(stderr, "Sleeping NOW!\n"); ::sleep(20); into the code; and when you see that in logcat, you have time to run: ndk-gdb and it will attach the process. /home/android/android-ndk-r9d/toolchains/arm-linux-androideabi- 4.8/prebuilt/linux-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.8/../../../../arm- linux-androideabi/bin/ld.gold: internal error in global_symbol, at /s/ndk- toolchain/src/build/../binutils/binutils-2.23/gold/object.h:2041
  3. 3 / 5 LibreOffice Conference 2014, Bern | Miklos Vajna

    MSVC • 7aa7047eb48e81bc0b32448ff0487c993fe9a4db had to be reverted: fatal error C1061: compiler limit : blocks nested too deeply Apparently there can be much more than "just a few values" in some cases (186 in OOXMLFactory_dml_shapeGeometry::getList Value) and MSVC compiler cannot handle if statement that deeply nested.
  4. 4 / 5 LibreOffice Conference 2014, Bern | Miklos Vajna

    (Apple's) clang • d7aef2407a0d9e8ff3bf72e198feb55a71307733 #ifdef IOS static void dummy_function() { pid_t pid = getpid(); (void) pid; } #endif #ifdef IOS // Work around what is // either a compiler bug in // Xcode 5.1.1, ... dummy_function(); #endif
  5. 5 / 5 LibreOffice Conference 2014, Bern | Miklos Vajna

    GCC • 2b5953a19e36a02040f2ff08bc87efe4785f80bd • There is hope! (Suspicious SbxDataType) https://gcc.gnu.org/bugzilla/show_bug.cgi?id=36187 // gcc4.4 (and 4.3 and possibly older) have a problem with dynamic_cast directly to the target class, // so help it with an intermediate cast. I'm not sure what exactly the problem is, seems to be unrelated // to RTLD_GLOBAL, so most probably a gcc bug. FormulaExportBase* pBase = dynamic_cast<FormulaExportBase*>(dynamic_cast< SfxBaseModel*>(xClosable.get()));