gcc49 build on osx fix linker assertion#64
gcc49 build on osx fix linker assertion#64gartung wants to merge 3 commits intoroot-project:v6-02-00-patchesfrom gartung:v6-02-00-patches
Conversation
|
Thanks! Given that this is specifically macosx64 with GCC - could you select on that, and not penalize the main MacOS X compiler? |
|
Any clues on what variable to use. On 06/08/2015 12:54 PM, karies wrote:
|
|
You could check for |
|
Is that set as an environment variable? Would this work On 06/08/2015 12:59 PM, karies wrote:
|
|
Thanks, merged into master! Where else do you need it? |
|
v6-02-00-patches and v6-04-00-patches |
|
But it doesn't set the flag. |
|
Please merge latest. I think it fixes. |
|
@karies it is still not setting the flag. I will resubmit when it does. |
For small unit tests like the RooFit pythonization tests, the overhead
of starting the Python interpreter is dominant. That means the tests
should not be too granular. I think testing the RooFit pythonizations
with separate Python executions at the level of the different RooFit
classes was indeed too granular. Therefore, this commit suggests to have
a single RooFit pythonization unit test.
Running the unit tests before (single thread):
```txt
Test project /home/rembserj/code/root/root_build/bindings/pyroot/pythonizations/test
Start 64: pyunittests-bindings-pyroot-pythonizations-pyroot-roofit-rooabscollection
1/14 Test root-project#64: pyunittests-bindings-pyroot-pythonizations-pyroot-roofit-rooabscollection ....... Passed 1.09 sec
Start 65: pyunittests-bindings-pyroot-pythonizations-pyroot-roofit-rooabspdf-fitto
2/14 Test root-project#65: pyunittests-bindings-pyroot-pythonizations-pyroot-roofit-rooabspdf-fitto ........ Passed 1.13 sec
Start 66: pyunittests-bindings-pyroot-pythonizations-pyroot-roofit-rooabsreal-ploton
3/14 Test root-project#66: pyunittests-bindings-pyroot-pythonizations-pyroot-roofit-rooabsreal-ploton ...... Passed 1.14 sec
Start 67: pyunittests-bindings-pyroot-pythonizations-pyroot-roofit-rooarglist
4/14 Test root-project#67: pyunittests-bindings-pyroot-pythonizations-pyroot-roofit-rooarglist ............. Passed 0.93 sec
Start 68: pyunittests-bindings-pyroot-pythonizations-pyroot-roofit-roocmdarg
5/14 Test root-project#68: pyunittests-bindings-pyroot-pythonizations-pyroot-roofit-roocmdarg .............. Passed 0.95 sec
Start 69: pyunittests-bindings-pyroot-pythonizations-pyroot-roofit-roodatahist-numpy
6/14 Test root-project#69: pyunittests-bindings-pyroot-pythonizations-pyroot-roofit-roodatahist-numpy ...... Passed 1.32 sec
Start 70: pyunittests-bindings-pyroot-pythonizations-pyroot-roofit-roodatahist-ploton
7/14 Test root-project#70: pyunittests-bindings-pyroot-pythonizations-pyroot-roofit-roodatahist-ploton ..... Passed 1.09 sec
Start 71: pyunittests-bindings-pyroot-pythonizations-pyroot-roofit-roodataset
8/14 Test root-project#71: pyunittests-bindings-pyroot-pythonizations-pyroot-roofit-roodataset ............. Passed 1.03 sec
Start 72: pyunittests-bindings-pyroot-pythonizations-pyroot-roofit-roodataset-numpy
9/14 Test root-project#72: pyunittests-bindings-pyroot-pythonizations-pyroot-roofit-roodataset-numpy ....... Passed 1.70 sec
Start 73: pyunittests-bindings-pyroot-pythonizations-pyroot-roofit-rooglobalfunc
10/14 Test root-project#73: pyunittests-bindings-pyroot-pythonizations-pyroot-roofit-rooglobalfunc .......... Passed 1.21 sec
Start 74: pyunittests-bindings-pyroot-pythonizations-pyroot-roofit-roojsonfactorywstool
11/14 Test root-project#74: pyunittests-bindings-pyroot-pythonizations-pyroot-roofit-roojsonfactorywstool ... Passed 1.40 sec
Start 75: pyunittests-bindings-pyroot-pythonizations-pyroot-roofit-roolinkedlist
12/14 Test root-project#75: pyunittests-bindings-pyroot-pythonizations-pyroot-roofit-roolinkedlist .......... Passed 0.87 sec
Start 76: pyunittests-bindings-pyroot-pythonizations-pyroot-roofit-roosimultaneous
13/14 Test root-project#76: pyunittests-bindings-pyroot-pythonizations-pyroot-roofit-roosimultaneous ........ Passed 1.09 sec
Start 77: pyunittests-bindings-pyroot-pythonizations-pyroot-roofit-rooworkspace
14/14 Test root-project#77: pyunittests-bindings-pyroot-pythonizations-pyroot-roofit-rooworkspace ........... Passed 1.21 sec
100% tests passed, 0 tests failed out of 14
Label Time Summary:
python = 16.16 sec*proc (14 tests)
python_runtime_deps = 3.02 sec*proc (2 tests)
Total Test time (real) = 16.17 sec
```
With this commit:
```txt
Test project /home/rembserj/code/root/root_build/bindings/pyroot/pythonizations/test
Start 64: pyunittests-bindings-pyroot-pythonizations-pyroot-roofit
1/1 Test root-project#64: pyunittests-bindings-pyroot-pythonizations-pyroot-roofit ... Passed 3.27 sec
100% tests passed, 0 tests failed out of 1
Label Time Summary:
python = 3.27 sec*proc (1 test)
Total Test time (real) = 3.27 sec
```
For small unit tests like the RooFit pythonization tests, the overhead
of starting the Python interpreter is dominant. That means the tests
should not be too granular. I think testing the RooFit pythonizations
with separate Python executions at the level of the different RooFit
classes was indeed too granular. Therefore, this commit suggests to have
a single RooFit pythonization unit test.
Running the unit tests before (single thread):
```txt
Test project /home/rembserj/code/root/root_build/bindings/pyroot/pythonizations/test
Start 64: pyunittests-bindings-pyroot-pythonizations-pyroot-roofit-rooabscollection
1/14 Test #64: pyunittests-bindings-pyroot-pythonizations-pyroot-roofit-rooabscollection ....... Passed 1.09 sec
Start 65: pyunittests-bindings-pyroot-pythonizations-pyroot-roofit-rooabspdf-fitto
2/14 Test #65: pyunittests-bindings-pyroot-pythonizations-pyroot-roofit-rooabspdf-fitto ........ Passed 1.13 sec
Start 66: pyunittests-bindings-pyroot-pythonizations-pyroot-roofit-rooabsreal-ploton
3/14 Test #66: pyunittests-bindings-pyroot-pythonizations-pyroot-roofit-rooabsreal-ploton ...... Passed 1.14 sec
Start 67: pyunittests-bindings-pyroot-pythonizations-pyroot-roofit-rooarglist
4/14 Test #67: pyunittests-bindings-pyroot-pythonizations-pyroot-roofit-rooarglist ............. Passed 0.93 sec
Start 68: pyunittests-bindings-pyroot-pythonizations-pyroot-roofit-roocmdarg
5/14 Test #68: pyunittests-bindings-pyroot-pythonizations-pyroot-roofit-roocmdarg .............. Passed 0.95 sec
Start 69: pyunittests-bindings-pyroot-pythonizations-pyroot-roofit-roodatahist-numpy
6/14 Test #69: pyunittests-bindings-pyroot-pythonizations-pyroot-roofit-roodatahist-numpy ...... Passed 1.32 sec
Start 70: pyunittests-bindings-pyroot-pythonizations-pyroot-roofit-roodatahist-ploton
7/14 Test #70: pyunittests-bindings-pyroot-pythonizations-pyroot-roofit-roodatahist-ploton ..... Passed 1.09 sec
Start 71: pyunittests-bindings-pyroot-pythonizations-pyroot-roofit-roodataset
8/14 Test #71: pyunittests-bindings-pyroot-pythonizations-pyroot-roofit-roodataset ............. Passed 1.03 sec
Start 72: pyunittests-bindings-pyroot-pythonizations-pyroot-roofit-roodataset-numpy
9/14 Test #72: pyunittests-bindings-pyroot-pythonizations-pyroot-roofit-roodataset-numpy ....... Passed 1.70 sec
Start 73: pyunittests-bindings-pyroot-pythonizations-pyroot-roofit-rooglobalfunc
10/14 Test #73: pyunittests-bindings-pyroot-pythonizations-pyroot-roofit-rooglobalfunc .......... Passed 1.21 sec
Start 74: pyunittests-bindings-pyroot-pythonizations-pyroot-roofit-roojsonfactorywstool
11/14 Test #74: pyunittests-bindings-pyroot-pythonizations-pyroot-roofit-roojsonfactorywstool ... Passed 1.40 sec
Start 75: pyunittests-bindings-pyroot-pythonizations-pyroot-roofit-roolinkedlist
12/14 Test #75: pyunittests-bindings-pyroot-pythonizations-pyroot-roofit-roolinkedlist .......... Passed 0.87 sec
Start 76: pyunittests-bindings-pyroot-pythonizations-pyroot-roofit-roosimultaneous
13/14 Test #76: pyunittests-bindings-pyroot-pythonizations-pyroot-roofit-roosimultaneous ........ Passed 1.09 sec
Start 77: pyunittests-bindings-pyroot-pythonizations-pyroot-roofit-rooworkspace
14/14 Test #77: pyunittests-bindings-pyroot-pythonizations-pyroot-roofit-rooworkspace ........... Passed 1.21 sec
100% tests passed, 0 tests failed out of 14
Label Time Summary:
python = 16.16 sec*proc (14 tests)
python_runtime_deps = 3.02 sec*proc (2 tests)
Total Test time (real) = 16.17 sec
```
With this commit:
```txt
Test project /home/rembserj/code/root/root_build/bindings/pyroot/pythonizations/test
Start 64: pyunittests-bindings-pyroot-pythonizations-pyroot-roofit
1/1 Test #64: pyunittests-bindings-pyroot-pythonizations-pyroot-roofit ... Passed 3.27 sec
100% tests passed, 0 tests failed out of 1
Label Time Summary:
python = 3.27 sec*proc (1 test)
Total Test time (real) = 3.27 sec
```
When building with gcc49 on osx a linker assertion happens when linking interpreter module. Trial and error reveal that setting -O0 removes the linker assertion. Dan Riley found that adding the flag -fno-omit-frame-pointer also removed the linker assertion without removing other optimizations.