Uploaded image for project: 'Thrift'
  1. Thrift
  2. THRIFT-3847

thrift/config.h includes a #define for VERSION which will likely conflict with existing user environment or code

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Minor
    • Resolution: Fixed
    • 0.10.0
    • 0.11.0
    • C++ - Library
    • None
    • Ubuntu 14.04, used docker environment to build debian packages with "dpkg-buildpackage -d -tc" inside the docker environment.

    Description

      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.

      Follow-up: THRIFT-3873 changed from "VERSION" to "PACKAGE_VERSION", not "THRIFT_VERSION" which was prescribed here.

      Attachments

        Issue Links

          Activity

            People

              jking3 James E. King III
              jking3 James E. King III
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: