GNU Tools Cauldron 2016
GNU Tools Cauldron 2016
- Slides, Videos and Notes
- Mailing lists
- Workshop description
- Wuthering Bytes
Date: September 9 to 11, 2016.
Registration Fee: No charge.
Submission deadline: 31 July 2016. We will also accept "last minute" BoF/talks at the conference, if there is still room available.
as of 8 August, there is still room for some more talks, so please send your abstracts in ASAP.
- Andrew Back
- Jeremy Bennett
- Raymond Harney
- Jan Hubička
- Judith Jones
- Ian Taylor
Slides, Videos and Notes
These are the videos, slides and any notes for all recorded presentations. Not all BoFs were videoed.
Abstract submissions, registration, administrivia questions: firstname.lastname@example.org
Announcements and discussions related to the conference: email@example.com .
We are pleased to announce another gathering of GNU tools developers. The basic format of this meeting will be similar to the previous meetings. However this year the meeting will be immediately preceded by the first ever LLVM Cauldron.
The purpose of this workshop is to gather all GNU tools developers, discuss current/future work, coordinate efforts, exchange reports on ongoing efforts, discuss development plans for the next 12 months, developer tutorials and any other related discussions.
This time, the GNU Tools Cauldron will form the closing weekend of the Wuthering Bytes technology festival in Hebden Bridge in the UK. Situated at the heart of the UK's "Northern Powerhouse", Hebden Bridge is roughly equidistant from Liverpool, Manchester, Sheffield, Leeds and Bradford. The Wuthering Bytes festival is a 10 day celebration of all things technological that are free and open source.
We are inviting every developer working in the GNU toolchain: GCC, GDB, binutils, runtimes, etc. In addition to discussion topics selected at the conference, we are looking for advance submissions.
If you have a topic that you would like to present, please submit an abstract describing what you plan to present. We are accepting three types of submissions:
- Prepared presentations: demos, project reports, etc.
BoFs: coordination meetings with other developers.
- Tutorials for developers. No user tutorials, please.
Note that we will not be doing in-depth reviews of the presentations. Mainly we are looking for applicability and to decide scheduling. There will be time at the conference to add other topics of discussion, similarly to what we did at the previous meetings.
To register your abstract, send e-mail to firstname.lastname@example.org .
Your submission should contain the following information:
If you intend to participate, but not necessarily present, please let us know as well. Send a message to email@example.com stating your intent to participate. Please indicate your affiliation, dietary requirements and t-shirt size.
All events are at Hebden Bridge Town Hall, except where indicated.
Thursday 8th September
Gala Welcome reception (joint with LLVM Cauldron)
Friday 9th September
Afternoon tea and coffee
Testing BoF (Dave Malcolm will join remotely)
Whole system tracing: The malloc API (D J Delorie will join remotely)
Saturday 10th September
Registration tea and coffee
Afternoon tea and coffee
GNU Cauldron dinner at the Birchcliffe Centre
Sunday 11th September
Registration tea and coffee
Afternoon tea and coffee
The Waterfront Hall seats up to 120, The Space seats up to 50 and the Terrace up to 24. Where there are two tracks, we have tried to aim the smaller audience at The Space or the Terrace. There is plenty of opportunity to include last minute talks and BoFs - just contact one of the organizers.
In addition we have the Outer Space (seating 8) and the Terrace (seats up to 24) for informal meetings, breakout and hacking. We will be using the Terrace for the second track on Sunday afternoon, when the Space is in use by another event.
Last Minute Changes
The schedules will be on posters around the venue, and will be updated as necessary by the organizers. In addition last minute changes will be posted on the GCC IRC channel (#gcc on irc.oftc.net) and tweeted with the hashtag #GNUCauldron.
Remote Access to Talks
In general we are not going to livestream the talks, although they will all be videoed and made available here shortly after the Cauldron concludes.
However one BoF and one talk on Friday afternoon as indicated above will add a remote participants who cannot be present. In both cases this will be a 1:1 connection, and we will use the smaller room (The Space), since the acoustics are likely to be more forgiving.
Abstracts are listed in strict case insensitive alphabetical order of title.
Binutils Development for New Backends - ARC Experience
Speakers: Cupertino Miranda & Claudiu Zissulescu
Time: Saturday, 16:45-17:30, The Space
We present a methodology of developing GNU software tools for newly developed targets based on a common database containing ISA information for all the processor cores variants. We will show how we applied this methodology for ARC processors family to implement the GNU binutils backend with a better maintainable and more abstract ideology in mind.
To achieve this more maintainable and abstract design for the new GNU assembler port we must implement every software module in a similar fashion. This includes the relaxation software module whose implementation is one of the goals of the project.
As a first step, we have generated the assembler opcode table, used also by disassembler. Next, using the common database we have also generated relocation information and tests to verify our implementation.
Last but not least, we would like to present some brainstorming ideas to improve and formalize GNU Binutils Linker backends introducing table driven coding and domain specific languages.
Debugging Shaders on Intel(R) GPUs: Past and Present
Speakers: Mircea Gherzan & Fabian Schnell
Time: Saturday, 15:45-16:30, Waterfront Hall
The Intel(R) Debugger for Heterogenous Compute is aimed at debugging of GPGPU/3D shaders running on Intel(R) GPUs. The debugger is based on GDB ported to the Intel(R) Gen GPU architecture. This talk will focus on the evolution of the architecture of the debugger support stack (driver, libraries) as well as on the newly supported APIs and runtimes.
Enhancing the PowerPC GCC compiler for the future Power9 hardware
Speaker: Michael Meissner
Time: Saturday, 15:45-16:30, Waterfront Hall
This talk will discuss the work that has gone into modifying the backend of the GCC compiler to support the new PowerPC ISA 3.0 instructions that will first be implemented in the future Power9 hardware. Some of the new features that will be discussed will include:
- New addressing support for vector registers;
- New updates to the IEEE 128-bit floating point support;
- New vector insert and extract support;
- Better little endian support;
- New minimum andmaximum instructions;
- New integer instructions (array indexing, modulus,multiply/add); and
- Miscellaneous other instructions.
Fixing LTO Debug Information
Speaker: Richard Biener
Time: Friday, 10:00-10:45, Waterfront Hall
We present work to address the debug information generation and quality issuess when using link-time optimization (LTO).
Currently debug information is fully generated from within the individual link-time optimization (LTRANS) units. The issue with that is that no frontend data structures survive until that point and thus most of the data we have to build debug information from is language agnostic and this reflects in the quality of the generated debug information.
To address this we build on the early-debug refactoring, effectively preserving all the debug information that was generated for types and declarations and only annotating that during LTRANS with information such as locations. The way to preserve the early debug information is to stream out a early DWARF tree into debug info sections of the compilation unit object files that also contain LTO IL. Those are later refered to and annotated via DWARF produced by the LTRANS units and combined into final executable debug information by the link editor.
Forthcoming Improvements to the GNU Tools
Speakers: Nick Clifton
Time: Sunday 11.00-11.45, Waterfront Hall
This presentation focuses on work being undertaken by the toolchain group at Red Hat. It seeks to inform people about what we are doing, what we hope to achieve, and how it might affect other tool users and developers.
Speaker: Pedro Alves
Time: Friday, 13:00-13:45, Waterfront Hall
In this talk, I will present an overview of the current state of several GDB projects. For example:
- GDB's C++ conversion
- Fully featured IDE/GUI gdb consoles
- aka creating separate MI channels/interpreters ("new-ui" command).
- Reusing gcc/g++ for C/C++ parsing (libcc1)
- All-stop, non-stop, thread control, multi-process, multi-target, etc.
- GDB vs GDBserver
- Linux filesystem/pid namespace awareness; access container binaries automatically, etc.
GNU Modula-2 status, whole program optimisation and language interoperability
Speaker: Gaius Mulley
Time: Friday, 16:45-17:30, Waterfront Hall
This talk will discuss the current status of GNU Modula-2 and the developer roadmap for the immediate future. It also discusses some of the key design decisions which enable gm2 to be used with other languages and tool chain components. The talk reports on some performance benchmarks from whole program optimisation when applied to a Python module implemented in Modula-2. Finally it concludes with the developer experiences when implementing this optimisation.
Speaker: Martin Jambor
Time: Saturday, 11:00-11:45, Waterfront Hall
The talk will mainly discuss how OpenMP constructs are lowered and expanded when compiled intoto HSA Intermediate Language (HSAIL). Additionally, it will also cover the recent developments in the HSA back-end and HSA environment in general.
Speaker: Gary Benson
Time: Saturday, 14:00-14:45, Waterfront Hall
Infinity is a platform-independent system for executables and shared libraries to expose functionality to debug, monitoring, and analysis tooling. It grew from a need for GDB to be able to debug multithreaded applications without requiring libthread_db. Other systems exist that use the libthread_db paradigm, for example librtld_db and OPMD; Infinity was designed to replace this entire class of library-tool interface with something more portable and robust.
OpenMP offloading for the NVPTX target in GCC
Speaker: Alexander Monakov
Time: Saturday, 10:00-10:45, Waterfront Hall
This talk describes the implementation of OpenMP offloading for NVIDIA accelerators (corresponding to the 'nvptx' GCC target). It required changes in the nvptx backend, middle-end (mostly in OpenMP lowering) and libgomp. Although the implementation tries to fit within the existing infrastructure, the new code execution style in offloaded OpenMP regions (where logical threads are mapped onto PTX synchronous thread groups (warps), and individual PTX threads are exposed only as SIMD lanes) requires that OpenMP SIMD lowering is specialized for this execution style. Furthermore, since offloaded code is generated from the same LTO bytecode as the host code, we need to arrange that before LTO stream-out, GIMPLE representation incorporates both traditional and GPU-specific flows, and either can be easily cleaned out just after LTO stream-in.
Porting GCC to AMD GCN
Speaker: Jan Hubicka
Time: Friday, 14:00-14:45, The Space
Graphics Core Next (GCN) is microarchitecture and instruction set used by by AMD GPUs. Introduced in 2011 it was designed from scratch to look more like a traditional CPU compared to its predecestors. In last several weeks I was experimenting with porting GCC to GCN. In the talk I will present the overview of instruction set and main challenges involved in porting GCC to this new ISA.
What else can !BuildBot do for glibc?
Speaker: Tulio Magno Quites Machado Filho
Time: Sunday, 13:00-13:45, The Terrace
In the past year, glibc's buildbot started functioning with the most basic functionality: building and testing the latest patches on master. However, BuildBot is able to do much more than that. This talk will discuss proposals to increase the BuildBot scope and tests.
Whole-system tracing: The malloc API
Speaker: Carlos O'Donell
Time: Friday, 16:45-17:30, The Space
D J Delorie will join this session remotely from the USA and answer questions at the end.
In GNU Cauldron 2015 the concept of whole-system tracing was discussed and several key ideas concluded. This talk presents some of the forward progress that the Red Hat glibc team has made by starting with the malloc family API of functions, adding API trace, trace to workload conversion, and workload simulation. We cover some of the initial problems we faced, solutions we chose, and the current implementation which is available on the public branch "dj/malloc." We are excited to discuss this work with the community and how we might extend this to other APIs.
No tutorials have been proposed for this year's cauldron.
GCC Steering Committee Q&A
Led by: David Edelsohn, on behalf of GCC Steering Committee
Time: Sunday, 10:00-10:45, Waterfront Hall
Question and answer session and general discussion with members of the GCC Steering Committee in attendance about the direction of GCC and its interface with the Free Software Foundation.
Birds of a Feather sessions (BoFs)
ARM & AArch64 BoF
Led by: Ramana Radhakrishnan
Time: Sunday, 13:00 - 13:45, Waterfront Hall
BoF covering developments in the GNU toolchain ports for ARM and AArch64 and a chance to discuss any specific issues that need to be brought up regarding the GNU toolchain for ARM and AArch64
BoF for LTO
Led by: Jan (Honza) Hubicka
Time: Friday, 11:00-11:45, Waterfront Hall
A general discussions of topics related to implementation of link time optimization in GCC.
GLIBC for Power BoF
Led by: Carlos Eduardo Seo
Time: Saturday 16:45-17:30, Waterfront Hall
In this session, we will discuss:
- Improvements to glibc that are important to Power, like the Tunables Framework proposal.
- The possibility of integrating some of IBM-maintained open source libraries (libdfp and libvecpf) into the glibc code.
- Future work for POWER9 — enablement and performance optimizations.
We can open discussions about other topics relevant to Power that the community wishes to talk about as well.
Leakage Aware Design Automation (LADA) BoF
Led by: Jeremy Bennett, Simon Cook
Time Sunday 13:45-14:30, The Terrace
Security is an every increasing concern across the computing industry, most recently in the emerging Internet of Things market. Your compiler cannot magically write secure code, but it can help a good programmer write secure code.
The Leakage Aware Design Automation project is an EPSRC funded programme running over four years at Bristol University led by Elizabeth Oswald and Dan Page. It will look at how all aspects of software tooling can improve security of systems, particularly by minimizing information leakage. An important part of this project is extending compiler technology, and the programme includes a postdoctoral post (still vacant) to research this area.
We are the "industrial supporters" of this project. Our role is to take the research ideas and make them work in real compilers - GCC & LLVM. For example.
- Sensitive variables should never be used to control loops or branches. Such flow control allows techniques such as differential power analysis to glean information. We could mark such variables with a "sensitive" attribute and warn if they or their aliases we involved in control flow. This can be extended to critical data dependent instruction timings and memory accesses.
- Security relevant functions could clear their stack frame on return. The same could be done with longjmp.
- One way to attack systems is to use intense radiation to disrupt memory. The hope is that a critical variable will be impacted. To fix this, code will often repeat operations, but compiler optimization will promptly remove them, so such code is used unoptimized. How do we tell the optimizer to leave certain duplicate operations in place.
- A general technique is shuffling - varying the time at which particular instructions are executed.
- Atomicity is the idea of balancing all control flow paths, so they cannot be distinguished by leakage.
- Bit-slicing is used to spread critical variables throughout memory, to make it harder to spot values by scanning memory. Today this has to be done by hand, but we could use attributes to tell the compiler to break up such variables automatically (which would require coordination with the linker).
- Can superoptimization bet used to minimize information leakage? Are other optimization techniques suitable (for example the machine learning of MILEPOST/MAGEEC/TSERO)? the
- Can compiler analysis yield new instruction set extensions which would improve cryptographic robustness?
Some of these techniques are not new, but none are yet in mainstream compilers. We plan to add these features and others, particularly the new ideas which we hope this research programme will identify. The project is still in its very early stage and the purpose of this BoF is to raise awareness and get community feedback on some of the areas we will be working on, and suggestions for other areas to consider.
OpenMP, OpenACC and Offloading BoF
Led by: Jakub Jelinek
BoF covering recent GCC OpenMP/OpenACC development, especially about offloading to XeonPhi KNL, NVPTX and HSAIL and future plans in this area.
Led by: David Malcolm, Jeremy Bennett, Ed Jones & Graham Markall
Time: Friday, 15:45-16:30, The Space
David Malcolm will join this session remotely from the USA.
This BoF will consider the selftest framework David has been adding to gcc for unit-testing it, how it related to our existing DejaGnu framework. David has also been working on an RTL frontend (for testing RTL passes), and want to talk about that. https://dmalcolm.fedorapeople.org/presentations/cauldron-2016/#1
We'd also like to look at progress in making GCC regression testing as independent of the compiler as possible, so it can act as a reference test suite for other compilers, following on from Jeremy's talk at last year's cauldron.
Finally we'd like to explore some of the challenges of testing GCC on massively parallel platforms. In principle testing is highly parallel, but in practice with large numbers of processors this can be tricky. We'll want to introduce some ideas Ed Jones and Graham Markall have been working on. They're not yet mature enough to submit officially, but a BoF is a good time to get some early feedback on the approach.
The GDB BoF
Led by: Pedro Alves
Time: Friday, 14:00-14:45
Open for discussion of any topic relevant to GDB development.
The GNU C Library BoF
Led by: Carlos O'Donell & Roland McGrath
Time: Sunday, 14:00-14:45, Waterfront Hall
The GNU C Library is used as the C library in the GNU systems and most systems with the Linux kernel. The library is primarily designed to be a portable and high performance C library.It follows all relevant standards including ISO C11 and POSIX.1-2008. It is also internationalized and has one of the most complete internationalization interfaces known.
This BOF aims to bring together developers of other components that have dependencies on glibc and glibc developers to talk about the following topics:
Planning for glibc 2.25 and what work needs to be done between the August -> January 2017 timeframe.
- Planning for glibc 2.26 and what work needs to be done between January 2017 and July 2017.
- Wrappers for Linux syscalls and making forward progress.
- New cancellation framework.
... and more.
Hebden Bridge Town Hall (main venue)
The Town Hall is in the centre of Hebden Bridge and in recent years it was extended significantly, adding modern business facilities, while retaining grade 2 listed features in the original part of the building that date back to 1897. We shall be making use of its three major public meeting rooms to provide two tracks of talks and a breakout room.
The Town Hall also has its own cafe/restaurant, and a piazza overlooking the river.
Full fibre network connectivity is available for all meeting participants.
The Birchcliffe Centre (Cauldron dinner venue)
A converted Baptist church, the Birchcliffe Centre, offers an ideal venue for the Cauldron dinner.
We plan a buffet feast of regional foods, which will be accompanied by beverages from local brewers and vineyards (yes - they really exist in Yorkshire).
About Hebden Bridge
Hebden Bridge is a picturesque market town located in the North of England, in the foothills of the Pennines. It has a rich industrial and cultural heritage, having played an important part during the industrial revolution and being located nearby to the birthplace of the cooperative movement. Ted Hughes — who served as Poet Laureate from 1984 until his death — was born on the outskirts of the town and drew much inspiration from the local area. In more recent years it has gone on to become home to many artists and other creatives
It has also been suggested that Hebden Bridge is perfectly located to play the part of Britain's 2nd city, or rather the centre of an inverted super-city with a "greenbelt centre and suburbs called Manchester, Leeds and Liverpool." (BBC,Guardian).
Hebden Bridge has its own hackerspace, Bridge Rectifier, and if there are going to be a few people in town outside of the main Cauldron days, it may be possible to arrange access and/or some sort of social or other informal event. Suggestions are welcomed
Hebden Bridge is served by both Manchester International and Leeds/Bradford airports. Transfer time by train from both is approximately 1.75 hours.
Hebden Bridge station is about half a mile from the centre of town and is well served by trains from Leeds and Manchester and thence to London and all major UK destinations. For timetables and travel planning see National Rail Enquiries.
A number of taxi companies serve Hebden Bridge. You are advised to call in advance if you wish to be met at the station.
- Valley Private Hire: +44 (0)1422 844070
- Hebden Cars: +44 (0)1422 845555
- Crossley's: +44 (0)1422 350789 (based in Halifax, but serve Hebden Bridge also)
Getting around Hebden Bridge
The town is quite small, so walking is the usual mode of transport. However much of the terrain is very hilly, so be prepared for some exertion. This is particularly true when walking from the main venue, the Town Hall, to the Birchcliffe Centre.
Hebden Bridge is a small historic market town, so you won't find the major hotel chains there, but there are smaller hotels, along together with plenty of B&B and self-catering accommodation.
Please note that you are advised to do your own research to ensure that accommodation lives up to your expectations.
Local hotels, B&Bs and self-catering
There are two main hotels in the town:
The White Lion (not to be confused with the inn of the same name in nearby Heptonstall, which does not have rooms)
There are also well serviced self-catering apartments:
Plus many smaller B&Bs and self-catering options available, details of which can be found via:
Hebden Bridge Hostel
Adjacent to the Birchcliffe Centre, the hostel provides very low cost rooms, both individual and shared. It does fill up quickly, so ensure you book well in advance.
Larger hotels (Halifax)
Larger hotels can be found in the much larger neighbouring town of Halifax, 8 miles away. There is a regular train service to get to and from Hebden Bridge, or you can take a taxi.
Imperial Crown (close to the train station)
Premier Inn (close to the train station)
White Swan (short walk from the train station)
Travelodge (about a mile walk from the train station)
Crossley's Cars are located close to the Travelodge and have quoted a fare of £12-13 for a taxi to Hebden Bridge Town Hall.
The UK is generally temperate, but well known for the variability of its weather. While September can often be pleasantly warm, it can also serve up autumn gales and rain.
Wuthering Bytes is an annual technology festival, with events that run as part of it covering a broad range of topics, but with open source and participation being common themes. Since starting in 2013 the festival has grown in size year-on-year and 2016 promises to be the largest yet.
Festival Day (September 2)
The festival will get off to a start on Friday 2nd September and a day filled with talks covering a diverse range of topics, with a particular focus on inspirational stories and unique insights, while looking to both the history and the future of technology. Talks from previous years include:
Programming Computers in the 1960s, Ann Kilbey.
It's only Rocket Science, James Macfarlane & Ed Moore.
The Future of Microprocessors, Sophie Wilson.
Steam powered Techno, Sarah Angliss.
Open Source Hardware Camp (September 3-4)
OSHCamp is the annual conference of the Open Source Hardware User Group and will be in its sixth year, typically featuring around 12 talks on the Saturday and 6 workshops on the Sunday. Topics covered in previous years include open hardware licensing, simulating and benchmarking the Adapteva Parallella board, from idea to finished product, building a maker business, and developing Linux on embedded devices.
Cauldron delegates are also invited to submit proposals for talks and workshops.
Open for Business (September 5)
This free one day conference is hosted by the BCS Open Source Group (OSSG) and aims to help anyone with or working at, an open source business, along with those who may be thinking of starting an open source business. There will be presentations that provide insights into first-hand experiences at companies ranging from micro to global in scale, together with talks that look at the economics and legal considerations, exploring open source business models and contracts.
This will be the 2nd year that Open for Business has been run and the video from 2015 is available online.
Open Smart Cities meeting (September 6)
The first in a series of events and activity working on how to apply technology, data science and innovation to the places we live. A full day of exploration, show & tell, and collaborative work - where we try and answer the questions:
Tickets via Registration page
Inaugural LLVM Cauldron (September 8)
The first ever LLVM Cauldron takes place the day before the GNU Tools Cauldron. Inspired by the success of the GNU Tools Cauldron, this conference is also free to attend and open to anyone to give a presentation. Full details via the LLVM Website.
Thanks for to sponsorship from the BCS, the professional body for computing in the UK, there will be a gala reception to conclude the LLVM Cauldron, which will also be the welcome reception for the GNU Tools Cauldron. An excellent opportunity for the two communities to mingle and share ideas.
There is much excellent walking to be had in almost very direction, with Hebden Bridge making an excellent base for novice and more adventurous walkers alike.
Hebden Bridge is less than 10 miles from the village of Haworth, where the Bronte Sisters spent most of their lives — the Bronte Parsonage is now a museum — and wrote their famous novels, as well as being one of the main stations on heritage steam railway, the Keighley & Worth Valley Railway. Hebden Bridge to Haworth is served by the 500 bus. For walkers with suitable all weather clothing, moderate experience and a day to spare, there are extremely picturesque routes across the moors from Hebden Bridge to Haworth.
The Museum of Science and Industry at Manchester is well worth a visit.
Hebden Bridge is also about 20 miles south of one of the UK's most starkly scenic regions, the Yorkshire Dales.