Add a config.h, containing GPOS_DEBUG and other flags that affect ABI.#32
Add a config.h, containing GPOS_DEBUG and other flags that affect ABI.#32hlinnaka wants to merge 2 commits intovmware-archive:masterfrom hlinnaka:config-h
Conversation
Before this patch, consumers of libgpos had to know out-of-band which flags were used to compile libgpos, because e.g. libgpos compiled with GPOS_DEBUG would only work if the application using libgpos was also compiled with GPOS_DEBUG. This is because many of the structs differ depending on GPOS_DEBUG. Same for the architecture flags, like GPOS_i386. The new config.h file is #included from a few central other header files, to make sure it gets included in any application that uses other gpos headers. We probably should include config.h from *all* other gpos header files, to be sure, but this seems to be enough for ORCA and GPDB at least.
|
Hello hlinnaka! Thanks for submitting this pull request! I'm here to inform the recipients of the pull request that you've already signed the CLA. |
|
-1 This looks like it will fail when the build type is debug. Can you try building both PR under CMake Build Type debug and run tests? My hunch is that orca won't even link |
|
On 08/15/2016 05:15 PM, Jesse Zhang wrote:
Works fine for me. Can you please explain what the problem is that you're seeing? Are you
|
|
when you configure GPOS with: The generated / installed |
|
The following past failed build might be of value to you, @hlinnaka https://gporca.ci.pivotalci.info/pipelines/gporca/jobs/orca_centos5_debug/builds/9 In Linux we were able to link, but the resulting binary was failing all tests (obviously) |
|
On 08/15/2016 07:44 PM, Jesse Zhang wrote:
A-ha, I didn't know about CMAKE_BUILD_TYPE! I had used just "cmake I'm baffled why that led to a linking error, though. I would expect ORCA
|
|
I'm not baffled how that could lead to linking error: it's C/C++ with |
|
On 21 August 2016 07:45:18 EEST, Jesse Zhang notifications@github.com wrote:
How does the cmake variable affect the ABI? Do you still see a problem with this latest patch?
|
Before this patch, consumers of libgpos had to know out-of-band which
flags were used to compile libgpos, because e.g. libgpos compiled with
GPOS_DEBUG would only work if the application using libgpos was also
compiled with GPOS_DEBUG. This is because many of the structs differ
depending on GPOS_DEBUG. Same for the architecture flags, like GPOS_i386.
The new config.h file is #included from a few central other header files,
to make sure it gets included in any application that uses other gpos
headers. We probably should include config.h from all other gpos header
files, to be sure, but this seems to be enough for ORCA and GPDB at least.