vtk-m/vtkm
Robert Maynard c1c43d19d4 Force GCC linker to see that we need pthread to work around nvidia driver bug.
1. Some Linux distributions default linker implicitly enables the as-needed
linking flag. This means that your shared library or executable will only
link to libraries from which they use symbols. So if you explicitly link to
pthread but don't use any symbols you wont have a 'DT_NEEDED' entry for
pthread.

2. NVidia libGL (driver version 352 ) uses pthread but doesn't have
a DT_NEEDED entry for the library. When you run ldd or readelf on the library
you won't detect any reference to the pthread library. Aside this is odd
since the mesa version does explicitly link to pthread. But if you run the
following command:
       "strings  /usr/lib/nvidia-352/libGL.so.1 | grep pthread | less"
You will see the following:
{ pthread_create
  pthread_self
  pthread_equal
  pthread_key_crea
  ...
  libpthread.so.0
  libpthread.so
  pthread_create
}
This is very strong evidence that this library is using pthread.

3. So what does this all mean?
It means that on system that use the linking flag 'as-needed', are using
the nvidia driver, and don't use pthread will generate binaries that crash
on launch. The only way to work around this issue is to do either:
  A: Specify 'no-as-needed' to the linker potentially causing over-linking
     and a  slow down in link time
  B: Use a method from pthread, making the linker realize that pthread is
     needed.

 We went with method B.
2016-03-18 09:34:03 -04:00
..
benchmarking Update Benchmark code to properly verify all algorithms. 2015-10-28 14:20:06 -04:00
cont Don't provide vectorization hints for operations that can be done inplace. 2016-03-16 08:29:00 -04:00
exec vtkm::exec::FunctorBase now properly initializes ErrorMessageBuffer. 2016-03-14 16:57:35 -04:00
filter Fix warnings found by the dashboard machines. 2016-03-14 08:39:17 -04:00
internal Merge topic 'stop_icc_15_from_icing' 2016-03-16 15:27:24 -04:00
io Fix compiler error about difference_type 2016-01-26 17:09:10 -07:00
opengl Force GCC linker to see that we need pthread to work around nvidia driver bug. 2016-03-18 09:34:03 -04:00
testing Correct implicit function test failures when vectorization is enabled. 2016-03-14 15:56:27 -04:00
worklet fix a long long to int warning. 2016-03-16 13:27:32 -04:00
BinaryOperators.h Update all of vtkm to understand it can only identify as one compiler. 2016-01-12 11:05:40 -05:00
BinaryPredicates.h Add vtkm/BinaryOperators header. 2015-08-04 16:55:53 -04:00
CellShape.h Convert unsupported cell types to supported types 2015-11-24 13:56:23 -05:00
CellTraits.h Remove pixel and voxel cell types 2015-08-27 17:03:13 -06:00
CMakeLists.txt First draft of vtkm::filter design. 2016-03-14 08:39:17 -04:00
Extent.h Merge branch 'master' into datamodel-design 2015-06-03 14:36:53 -04:00
ImplicitFunctions.h Add implicit functions 2015-10-08 09:32:14 -04:00
ListTag.h Add parentheses around condition in VTKM_STATIC_ASSERT_MSG 2015-12-15 10:29:53 -07:00
Math.h Use std::Min/Max over fmin/fmax 2015-12-07 09:26:27 -07:00
Math.h.in Use std::Min/Max over fmin/fmax 2015-12-07 09:26:27 -07:00
Matrix.h Add VecVariable 2015-08-14 09:15:46 -06:00
Pair.h Make vtkm::Pair behave as a better core type 2015-09-20 00:01:04 -06:00
StaticAssert.h Do not use _Pragma in code blocks with CUDA 2015-10-07 15:40:44 -06:00
TopologyElementTag.h Rename pragma header guard so it makes sense for tbb and thrust. 2015-08-13 09:04:23 -04:00
TypeListTag.h Use WholeArrayIn instead of ExecObject for MarchingCubes worklets 2015-12-07 09:52:29 -07:00
Types.h Make sure vtk and vtkm types match when long and long long are both 8bytes. 2016-02-22 14:20:25 -05:00
TypeTraits.h Update VecTraits/TypeTraits to include types that VTK uses. 2016-02-22 14:20:25 -05:00
UnaryPredicates.h Add vtkm/UnaryPredicates header. 2015-07-30 13:12:59 -04:00
VecRectilinearPointCoordinates.h Add VecRectilinearPointCoordinates class 2015-09-02 13:50:31 -07:00
VectorAnalysis.h Adding examples directory with isosurface rendering example 2015-09-01 17:09:36 -06:00
VecTraits.h Update VecTraits/TypeTraits to include types that VTK uses. 2016-02-22 14:20:25 -05:00
VecVariable.h Add VecVariable 2015-08-14 09:15:46 -06:00