You Down with GCC? (Yeah You Know Me)

C++17

  • Building GCC for C++17
  • 16 threads ~20 minutes
  • Managing libraries

It's a Bug, Not a Feature

  • Execution
  • TBB -- C++ template library
  • Parallel Algorithms

Multiple Versioning

  • First time for everything
  • lib64 vs lib
  • Makefile
  • Linking the library directory

C++ Crash Course by Lospinoso

  • Excellent modern programming book
  • Covers computer science topics
  • Details into REAL programming
    • Networking
    • Concurrency and Parallelism
    • Filesystems
    • Testing
    • C++ Algorithms
  • Parallel Sort
    • 1 billion random vectors
    • sort sequentially
    • sort in parallel
    • Boom, roasted

Concurrency vs Parallelism

  • Concurrency
    • Two or more tasks in a time frame
    • Scheduling via the OS to send instructions to each task
  • Parallelism
    • Two or more tasks executing at the same time
    • Scheduling has threads executing at the same time
    • Race conditions

BUT WHY?!

  • Forum Architecture
    • .NET Core
    • JavaScript
    • Ruuuuuuby
  • Deeper understanding
  • Systems programming
1 Like

Totally normal to set LD_LIBRARY_PATH to point to a custom gcc lib64.

The in Makefile you set CC=/your/path/gcc and CXX=/your/path/g++

As you said then you need -L and -I to point to /your/path/include

You don’t want to mess with dumping files into /usr.

Unless you are doing LFS style, you treat a custom compiler as a “cross compiler” and leave your host system as it comes in the packages.

If you start dumping things in /usr/lib64 you risk breaking other things on the platform.

3 Likes

p.s. you can use -rpath link argument to provide a fixed or relative (via $ORIGIN) path to libraries for long-term usage of a non-platform gcc/g++

1 Like

Man that was my issue. I had that env variable pointed at /usr/local/gcc/lib I think.

n00b errors / 10