Loading…
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.




Sign up or log in to bookmark your favorites and sync them to your phone or calendar.

Tools [clear filter]
Monday, April 1
 

2:00pm

BKK19-102 Enable debug tools on Golang for arm platform – (MSan & TSan)
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

Speakers
avatar for Fangming Fang

Fangming Fang

senior software engineer, Arm
Work on Golang for enabling arm port, performance optimization etc.



Monday April 1, 2019 2:00pm - 2:25pm
Session Room 1 (Lotus 1-2)
 
Tuesday, April 2
 

11:00am

BKK19-210 Cross compilation with clang and LLVM tools.
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.

Speakers
avatar for Peter Smith

Peter Smith

Principal Engineer, Arm
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.



Tuesday April 2, 2019 11:00am - 11:55am
Session Room 1 (Lotus 1-2)
 


Twitter Feed