James E. King, III created THRIFT-3847:
------------------------------------------

             Summary: thrift/config.h includes a #define for VERSION which will 
likely conflict with existing user environment or code
                 Key: THRIFT-3847
                 URL: https://issues.apache.org/jira/browse/THRIFT-3847
             Project: Thrift
          Issue Type: Bug
          Components: C++ - Library
    Affects Versions: 0.10.0
         Environment: Ubuntu 14.04, used docker environment to build debian 
packages with "dpkg-buildpackage -d -tc" inside the docker environment.
            Reporter: James E. King, III
            Priority: Minor


The built debian package installs /usr/include/thrift/config.h which has a 
#define VERSION in it.  This is likely to conflict with third party packages or 
end-user code.  It should be changed to THRIFT_VERSION as soon as possible.  I 
recognize this is a breaking change but also an easy one for people to absorb.  
It just bit me on a project where VERSION was used as a variable name in some 
tests, and in some generated code where VERSION was used as the name of a 
string in a thrift structure, i.e.

struct SomeStruct { 1: string VERSION }

This won't build because the compiler will see VERSION in the generated code 
and change it to a string constant from thrift/config.h, which won't compile.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to