Linaro Connect resources will be available here during and after Connect!
Booking Private Meetings Private meetings are booked through bkk19.skedda.com and your personal calendar (i.e. Google Calendar). View detailed instructions here.
For Speakers Please add your presentation to Sched.com by attaching a pdf file to your session (under Extras > + File). We will export these presentations daily and feature on the connect.linaro.org website here. Videos will be uploaded as we receive them (if the video of your session cannot be published please let us know immediately by emailing connect@linaro.org).
Puzzle: Dave Pigott has come up with another puzzle: https://linaro.co/bkk19puzzle can you crack the code?! Prizes will be awarded to the winner(s) on Friday.
Uninitialized memory can cause unpredict behavior and be hard to reproduce. Also Race conditions are among the most insidious and elusive programming errors. They typically cause erratic and mysterious failures, often long after the code has been deployed to production. Developers need to pay a lot of effort on testing and write code with care. Golang provides runtime tools for detecting those issues.
MemorySanitizer is a dynamic detector of uninitialized memory(UUM) in C and C++. The tool is based on compile time instrumentation and relies on bitprecise shadow memory at run-time. Shadow propagation technique is used to avoid false positive reports on copying of uninitialized memory. Also it’s a part of LLVM trunk and implemented as an LLVM optimization pass.
ThreadSanitizer is a dynamic detector of data races, implemented by hybrid algorithm(based on happens-befor and locksets) and is a part of compiler-rt in LLVM.
In this presentation I will share 1, What are MemorySanitizer and ThreadSanitizer 2, The algorithms of the two detectors 3, The relationship between them and LLVM 4, How to port them into Golang on arm64 5, The example used in Golang
Clang and the LLVM tools promise to be a drop in replacement for gcc and support cross compilation out of the box. In practice trying to make this work can be a frustrating experience, with little documentation or guidance available.
This presentation will distil some of the experience gained by TCWG, covering: - Clang's model of cross compilation and how it differs from gcc. - Why there isn't a clang cross-compilation toolchain that I can download. - Building a toolchain based on as many LLVM tools and libraries as possible. - How to use clang when cross compiling with cmake. - How some existing open source projects use clang tools targeting Arm and AArch64. - Common problems encountered when using clang as a substitute for gcc.
Peter is an Assignee to the Linaro Toolchain team (TCWG) working on LLVM based tools, specializing in Linkers. Prior to that he has many years of experience in the Arm Compiler Team.