You are viewing a plain text version of this content. The canonical link for it is here.
Posted to reviews@mesos.apache.org by Ben Mahler <be...@gmail.com> on 2016/04/29 01:32:53 UTC

Review Request 46804: Patched glog to eliminate system-level gflag library detection.

-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/46804/
-----------------------------------------------------------

Review request for mesos, Kapil Arya and Vinod Kone.


Repository: mesos


Description
-------

The glog library will attempt to detect whether the gflag library
is installed on the system. However, glog can compile correctly
when gflags is absent, due to a compatiblity layer:

https://github.com/google/glog/blob/v0.3.3/src/base/commandlineflags.h

We do not want a 3rd party dependency on the host to be picked up
by glog in general. In the case of gflags, it turns out that this
may break the build (when the gflag headers are incompatible).

There is no configure flag for disabling this auto-detection, so
we patch glog to remove it.


Diffs
-----

  3rdparty/libprocess/3rdparty/glog-0.3.3.patch f05f4b56bfc217f3fb82c32b56a950e0fc9956f2 

Diff: https://reviews.apache.org/r/46804/diff/


Testing
-------

`make check` succeeds with an installed gflags library.

Previously, the following occurs:

```
g++ -DHAVE_CONFIG_H -I. -I./src  -I./src  -pthread    -Wall -Wwrite-strings -Woverloaded-virtual -Wno-sign-compare  -DNO_FRAME_POINTER  -g1 -O0 -Wno-unused-local-typedefs -std=c++11 -MT logging_unittest-logging_unittest.o -MD -MP -MF .deps/logging_unittest-logging_unittest.Tpo -c -o logging_unittest-logging_unittest.o `test -f 'src/logging_unittest.cc' || echo './'`src/logging_unittest.cc
src/logging_unittest.cc: In function ‘int main(int, char**)’:
src/logging_unittest.cc:179:43: error: ‘ParseCommandLineFlags’ was not declared in this scope
   ParseCommandLineFlags(&argc, &argv, true);
                                           ^
src/logging_unittest.cc:179:43: note: suggested alternative:
In file included from src/glog/logging.h:85:0,
                 from src/utilities.h:82,
                 from src/logging_unittest.cc:33:
/usr/include/gflags/gflags.h:346:15: note:   ‘gflags::ParseCommandLineFlags’
 extern GFLAGS_DLL_DECL uint32 ParseCommandLineFlags(int *argc, char*** argv, bool remove_flags);
               ^
src/logging_unittest.cc: In static member function ‘static void Test_DeathNoAllocNewHook_logging::Run()’:
src/logging_unittest.cc:296:130: error: ‘FlagSaver’ was not declared in this scope
 TEST(DeathNoAllocNewHook, logging) {
                                                                                                                                  ^
src/logging_unittest.cc:296:130: note: suggested alternative:
In file included from src/glog/logging.h:85:0,
                 from src/utilities.h:82,
                 from src/logging_unittest.cc:33:
/usr/include/gflags/gflags.h:277:7: note:   ‘gflags::FlagSaver’
 class GFLAGS_DLL_DECL FlagSaver {
       ^
src/logging_unittest.cc:296:140: error: expected ‘;’ before ‘fs’
 TEST(DeathNoAllocNewHook, logging) {
                                                                                                                                            ^
src/logging_unittest.cc: In function ‘void TestRawLogging()’:
src/logging_unittest.cc:308:3: error: ‘FlagSaver’ was not declared in this scope
   FlagSaver saver;
   ^
src/logging_unittest.cc:308:3: note: suggested alternative:
In file included from src/glog/logging.h:85:0,
                 from src/utilities.h:82,
                 from src/logging_unittest.cc:33:
/usr/include/gflags/gflags.h:277:7: note:   ‘gflags::FlagSaver’
 class GFLAGS_DLL_DECL FlagSaver {
       ^
src/logging_unittest.cc:308:13: error: expected ‘;’ before ‘saver’
   FlagSaver saver;
             ^
src/logging_unittest.cc: In function ‘void LogWithLevels(int, int, bool, bool)’:
src/logging_unittest.cc:363:3: error: ‘FlagSaver’ was not declared in this scope
   FlagSaver saver;
   ^
src/logging_unittest.cc:363:3: note: suggested alternative:
In file included from src/glog/logging.h:85:0,
                 from src/utilities.h:82,
                 from src/logging_unittest.cc:33:
/usr/include/gflags/gflags.h:277:7: note:   ‘gflags::FlagSaver’
 class GFLAGS_DLL_DECL FlagSaver {
       ^
src/logging_unittest.cc:363:13: error: expected ‘;’ before ‘saver’
   FlagSaver saver;
             ^
src/logging_unittest.cc: In static member function ‘static void Test_DeathRawCHECK_logging::Run()’:
src/logging_unittest.cc:436:118: error: ‘FlagSaver’ was not declared in this scope
 TEST(DeathRawCHECK, logging) {
                                                                                                                      ^
src/logging_unittest.cc:436:118: note: suggested alternative:
In file included from src/glog/logging.h:85:0,
                 from src/utilities.h:82,
                 from src/logging_unittest.cc:33:
/usr/include/gflags/gflags.h:277:7: note:   ‘gflags::FlagSaver’
 class GFLAGS_DLL_DECL FlagSaver {
       ^
src/logging_unittest.cc:436:128: error: expected ‘;’ before ‘fs’
 TEST(DeathRawCHECK, logging) {
                                                                                                                                ^
src/logging_unittest.cc: In static member function ‘static void Test_DeathSTREQ_logging::Run()’:
src/logging_unittest.cc:586:112: error: ‘FlagSaver’ was not declared in this scope
 TEST(DeathSTREQ, logging) {
                                                                                                                ^
src/logging_unittest.cc:586:112: note: suggested alternative:
In file included from src/glog/logging.h:85:0,
                 from src/utilities.h:82,
                 from src/logging_unittest.cc:33:
/usr/include/gflags/gflags.h:277:7: note:   ‘gflags::FlagSaver’
 class GFLAGS_DLL_DECL FlagSaver {
       ^
src/logging_unittest.cc:586:122: error: expected ‘;’ before ‘fs’
 TEST(DeathSTREQ, logging) {
                                                                                                                          ^
src/logging_unittest.cc: In static member function ‘static void Test_CheckNOTNULL_Simple::Run()’:
src/logging_unittest.cc:596:114: error: ‘FlagSaver’ was not declared in this scope
 TEST(CheckNOTNULL, Simple) {
                                                                                                                  ^
src/logging_unittest.cc:596:114: note: suggested alternative:
In file included from src/glog/logging.h:85:0,
                 from src/utilities.h:82,
                 from src/logging_unittest.cc:33:
/usr/include/gflags/gflags.h:277:7: note:   ‘gflags::FlagSaver’
 class GFLAGS_DLL_DECL FlagSaver {
       ^
src/logging_unittest.cc:596:124: error: expected ‘;’ before ‘fs’
 TEST(CheckNOTNULL, Simple) {
                                                                                                                            ^
src/logging_unittest.cc: In static member function ‘static void Test_DeathCheckNN_Simple::Run()’:
src/logging_unittest.cc:607:114: error: ‘FlagSaver’ was not declared in this scope
 TEST(DeathCheckNN, Simple) {
                                                                                                                  ^
src/logging_unittest.cc:607:114: note: suggested alternative:
In file included from src/glog/logging.h:85:0,
                 from src/utilities.h:82,
                 from src/logging_unittest.cc:33:
/usr/include/gflags/gflags.h:277:7: note:   ‘gflags::FlagSaver’
 class GFLAGS_DLL_DECL FlagSaver {
       ^
src/logging_unittest.cc:607:124: error: expected ‘;’ before ‘fs’
 TEST(DeathCheckNN, Simple) {
                                                                                                                            ^
src/logging_unittest.cc: In static member function ‘static void Test_SafeFNMatch_logging::Run()’:
src/logging_unittest.cc:866:114: error: ‘FlagSaver’ was not declared in this scope
 TEST(SafeFNMatch, logging) {
                                                                                                                  ^
src/logging_unittest.cc:866:114: note: suggested alternative:
In file included from src/glog/logging.h:85:0,
                 from src/utilities.h:82,
                 from src/logging_unittest.cc:33:
/usr/include/gflags/gflags.h:277:7: note:   ‘gflags::FlagSaver’
 class GFLAGS_DLL_DECL FlagSaver {
       ^
src/logging_unittest.cc:866:124: error: expected ‘;’ before ‘fs’
 TEST(SafeFNMatch, logging) {
                                                                                                                            ^
src/logging_unittest.cc: In static member function ‘static void Test_Strerror_logging::Run()’:
src/logging_unittest.cc:1041:108: error: ‘FlagSaver’ was not declared in this scope
 TEST(Strerror, logging) {
                                                                                                            ^
src/logging_unittest.cc:1041:108: note: suggested alternative:
In file included from src/glog/logging.h:85:0,
                 from src/utilities.h:82,
                 from src/logging_unittest.cc:33:
/usr/include/gflags/gflags.h:277:7: note:   ‘gflags::FlagSaver’
 class GFLAGS_DLL_DECL FlagSaver {
       ^
src/logging_unittest.cc:1041:118: error: expected ‘;’ before ‘fs’
 TEST(Strerror, logging) {
                                                                                                                      ^
src/logging_unittest.cc: In static member function ‘static void Test_UserDefinedClass_logging::Run()’:
src/logging_unittest.cc:1206:124: error: ‘FlagSaver’ was not declared in this scope
 TEST(UserDefinedClass, logging) {
                                                                                                                            ^
src/logging_unittest.cc:1206:124: note: suggested alternative:
In file included from src/glog/logging.h:85:0,
                 from src/utilities.h:82,
                 from src/logging_unittest.cc:33:
/usr/include/gflags/gflags.h:277:7: note:   ‘gflags::FlagSaver’
 class GFLAGS_DLL_DECL FlagSaver {
       ^
src/logging_unittest.cc:1206:134: error: expected ‘;’ before ‘fs’
 TEST(UserDefinedClass, logging) {
                                                                                                                                      ^
make[7]: *** [logging_unittest-logging_unittest.o] Error 1
```


Thanks,

Ben Mahler


Re: Review Request 46804: Patched glog to eliminate system-level gflag library detection.

Posted by Ben Mahler <be...@gmail.com>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/46804/
-----------------------------------------------------------

(Updated April 28, 2016, 11:55 p.m.)


Review request for mesos, Kapil Arya and Vinod Kone.


Changes
-------

Set the GFLAGS_CFLAGS and GFLAGS_LIBS variables per vinod's suggestion.


Repository: mesos


Description
-------

The glog library will attempt to detect whether the gflag library
is installed on the system. However, glog can compile correctly
when gflags is absent, due to a compatiblity layer:

https://github.com/google/glog/blob/v0.3.3/src/base/commandlineflags.h

We do not want a 3rd party dependency on the host to be picked up
by glog in general. In the case of gflags, it turns out that this
may break the build (when the gflag headers are incompatible).

There is no configure flag for disabling this auto-detection, so
we patch glog to remove it.


Diffs (updated)
-----

  3rdparty/libprocess/3rdparty/glog-0.3.3.patch f05f4b56bfc217f3fb82c32b56a950e0fc9956f2 

Diff: https://reviews.apache.org/r/46804/diff/


Testing
-------

`make check` succeeds with an installed gflags library.

Previously, the following occurs:

```
g++ -DHAVE_CONFIG_H -I. -I./src  -I./src  -pthread    -Wall -Wwrite-strings -Woverloaded-virtual -Wno-sign-compare  -DNO_FRAME_POINTER  -g1 -O0 -Wno-unused-local-typedefs -std=c++11 -MT logging_unittest-logging_unittest.o -MD -MP -MF .deps/logging_unittest-logging_unittest.Tpo -c -o logging_unittest-logging_unittest.o `test -f 'src/logging_unittest.cc' || echo './'`src/logging_unittest.cc
src/logging_unittest.cc: In function ‘int main(int, char**)’:
src/logging_unittest.cc:179:43: error: ‘ParseCommandLineFlags’ was not declared in this scope
   ParseCommandLineFlags(&argc, &argv, true);
                                           ^
src/logging_unittest.cc:179:43: note: suggested alternative:
In file included from src/glog/logging.h:85:0,
                 from src/utilities.h:82,
                 from src/logging_unittest.cc:33:
/usr/include/gflags/gflags.h:346:15: note:   ‘gflags::ParseCommandLineFlags’
 extern GFLAGS_DLL_DECL uint32 ParseCommandLineFlags(int *argc, char*** argv, bool remove_flags);
               ^
src/logging_unittest.cc: In static member function ‘static void Test_DeathNoAllocNewHook_logging::Run()’:
src/logging_unittest.cc:296:130: error: ‘FlagSaver’ was not declared in this scope
 TEST(DeathNoAllocNewHook, logging) {
                                                                                                                                  ^
src/logging_unittest.cc:296:130: note: suggested alternative:
In file included from src/glog/logging.h:85:0,
                 from src/utilities.h:82,
                 from src/logging_unittest.cc:33:
/usr/include/gflags/gflags.h:277:7: note:   ‘gflags::FlagSaver’
 class GFLAGS_DLL_DECL FlagSaver {
       ^
src/logging_unittest.cc:296:140: error: expected ‘;’ before ‘fs’
 TEST(DeathNoAllocNewHook, logging) {
                                                                                                                                            ^
src/logging_unittest.cc: In function ‘void TestRawLogging()’:
src/logging_unittest.cc:308:3: error: ‘FlagSaver’ was not declared in this scope
   FlagSaver saver;
   ^
src/logging_unittest.cc:308:3: note: suggested alternative:
In file included from src/glog/logging.h:85:0,
                 from src/utilities.h:82,
                 from src/logging_unittest.cc:33:
/usr/include/gflags/gflags.h:277:7: note:   ‘gflags::FlagSaver’
 class GFLAGS_DLL_DECL FlagSaver {
       ^
src/logging_unittest.cc:308:13: error: expected ‘;’ before ‘saver’
   FlagSaver saver;
             ^
src/logging_unittest.cc: In function ‘void LogWithLevels(int, int, bool, bool)’:
src/logging_unittest.cc:363:3: error: ‘FlagSaver’ was not declared in this scope
   FlagSaver saver;
   ^
src/logging_unittest.cc:363:3: note: suggested alternative:
In file included from src/glog/logging.h:85:0,
                 from src/utilities.h:82,
                 from src/logging_unittest.cc:33:
/usr/include/gflags/gflags.h:277:7: note:   ‘gflags::FlagSaver’
 class GFLAGS_DLL_DECL FlagSaver {
       ^
src/logging_unittest.cc:363:13: error: expected ‘;’ before ‘saver’
   FlagSaver saver;
             ^
src/logging_unittest.cc: In static member function ‘static void Test_DeathRawCHECK_logging::Run()’:
src/logging_unittest.cc:436:118: error: ‘FlagSaver’ was not declared in this scope
 TEST(DeathRawCHECK, logging) {
                                                                                                                      ^
src/logging_unittest.cc:436:118: note: suggested alternative:
In file included from src/glog/logging.h:85:0,
                 from src/utilities.h:82,
                 from src/logging_unittest.cc:33:
/usr/include/gflags/gflags.h:277:7: note:   ‘gflags::FlagSaver’
 class GFLAGS_DLL_DECL FlagSaver {
       ^
src/logging_unittest.cc:436:128: error: expected ‘;’ before ‘fs’
 TEST(DeathRawCHECK, logging) {
                                                                                                                                ^
src/logging_unittest.cc: In static member function ‘static void Test_DeathSTREQ_logging::Run()’:
src/logging_unittest.cc:586:112: error: ‘FlagSaver’ was not declared in this scope
 TEST(DeathSTREQ, logging) {
                                                                                                                ^
src/logging_unittest.cc:586:112: note: suggested alternative:
In file included from src/glog/logging.h:85:0,
                 from src/utilities.h:82,
                 from src/logging_unittest.cc:33:
/usr/include/gflags/gflags.h:277:7: note:   ‘gflags::FlagSaver’
 class GFLAGS_DLL_DECL FlagSaver {
       ^
src/logging_unittest.cc:586:122: error: expected ‘;’ before ‘fs’
 TEST(DeathSTREQ, logging) {
                                                                                                                          ^
src/logging_unittest.cc: In static member function ‘static void Test_CheckNOTNULL_Simple::Run()’:
src/logging_unittest.cc:596:114: error: ‘FlagSaver’ was not declared in this scope
 TEST(CheckNOTNULL, Simple) {
                                                                                                                  ^
src/logging_unittest.cc:596:114: note: suggested alternative:
In file included from src/glog/logging.h:85:0,
                 from src/utilities.h:82,
                 from src/logging_unittest.cc:33:
/usr/include/gflags/gflags.h:277:7: note:   ‘gflags::FlagSaver’
 class GFLAGS_DLL_DECL FlagSaver {
       ^
src/logging_unittest.cc:596:124: error: expected ‘;’ before ‘fs’
 TEST(CheckNOTNULL, Simple) {
                                                                                                                            ^
src/logging_unittest.cc: In static member function ‘static void Test_DeathCheckNN_Simple::Run()’:
src/logging_unittest.cc:607:114: error: ‘FlagSaver’ was not declared in this scope
 TEST(DeathCheckNN, Simple) {
                                                                                                                  ^
src/logging_unittest.cc:607:114: note: suggested alternative:
In file included from src/glog/logging.h:85:0,
                 from src/utilities.h:82,
                 from src/logging_unittest.cc:33:
/usr/include/gflags/gflags.h:277:7: note:   ‘gflags::FlagSaver’
 class GFLAGS_DLL_DECL FlagSaver {
       ^
src/logging_unittest.cc:607:124: error: expected ‘;’ before ‘fs’
 TEST(DeathCheckNN, Simple) {
                                                                                                                            ^
src/logging_unittest.cc: In static member function ‘static void Test_SafeFNMatch_logging::Run()’:
src/logging_unittest.cc:866:114: error: ‘FlagSaver’ was not declared in this scope
 TEST(SafeFNMatch, logging) {
                                                                                                                  ^
src/logging_unittest.cc:866:114: note: suggested alternative:
In file included from src/glog/logging.h:85:0,
                 from src/utilities.h:82,
                 from src/logging_unittest.cc:33:
/usr/include/gflags/gflags.h:277:7: note:   ‘gflags::FlagSaver’
 class GFLAGS_DLL_DECL FlagSaver {
       ^
src/logging_unittest.cc:866:124: error: expected ‘;’ before ‘fs’
 TEST(SafeFNMatch, logging) {
                                                                                                                            ^
src/logging_unittest.cc: In static member function ‘static void Test_Strerror_logging::Run()’:
src/logging_unittest.cc:1041:108: error: ‘FlagSaver’ was not declared in this scope
 TEST(Strerror, logging) {
                                                                                                            ^
src/logging_unittest.cc:1041:108: note: suggested alternative:
In file included from src/glog/logging.h:85:0,
                 from src/utilities.h:82,
                 from src/logging_unittest.cc:33:
/usr/include/gflags/gflags.h:277:7: note:   ‘gflags::FlagSaver’
 class GFLAGS_DLL_DECL FlagSaver {
       ^
src/logging_unittest.cc:1041:118: error: expected ‘;’ before ‘fs’
 TEST(Strerror, logging) {
                                                                                                                      ^
src/logging_unittest.cc: In static member function ‘static void Test_UserDefinedClass_logging::Run()’:
src/logging_unittest.cc:1206:124: error: ‘FlagSaver’ was not declared in this scope
 TEST(UserDefinedClass, logging) {
                                                                                                                            ^
src/logging_unittest.cc:1206:124: note: suggested alternative:
In file included from src/glog/logging.h:85:0,
                 from src/utilities.h:82,
                 from src/logging_unittest.cc:33:
/usr/include/gflags/gflags.h:277:7: note:   ‘gflags::FlagSaver’
 class GFLAGS_DLL_DECL FlagSaver {
       ^
src/logging_unittest.cc:1206:134: error: expected ‘;’ before ‘fs’
 TEST(UserDefinedClass, logging) {
                                                                                                                                      ^
make[7]: *** [logging_unittest-logging_unittest.o] Error 1
```


Thanks,

Ben Mahler


Re: Review Request 46804: Patched glog to eliminate system-level gflag library detection.

Posted by Kapil Arya <ka...@mesosphere.io>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/46804/#review131010
-----------------------------------------------------------


Ship it!




Ship It!

- Kapil Arya


On April 28, 2016, 7:32 p.m., Ben Mahler wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/46804/
> -----------------------------------------------------------
> 
> (Updated April 28, 2016, 7:32 p.m.)
> 
> 
> Review request for mesos, Kapil Arya and Vinod Kone.
> 
> 
> Repository: mesos
> 
> 
> Description
> -------
> 
> The glog library will attempt to detect whether the gflag library
> is installed on the system. However, glog can compile correctly
> when gflags is absent, due to a compatiblity layer:
> 
> https://github.com/google/glog/blob/v0.3.3/src/base/commandlineflags.h
> 
> We do not want a 3rd party dependency on the host to be picked up
> by glog in general. In the case of gflags, it turns out that this
> may break the build (when the gflag headers are incompatible).
> 
> There is no configure flag for disabling this auto-detection, so
> we patch glog to remove it.
> 
> 
> Diffs
> -----
> 
>   3rdparty/libprocess/3rdparty/glog-0.3.3.patch f05f4b56bfc217f3fb82c32b56a950e0fc9956f2 
> 
> Diff: https://reviews.apache.org/r/46804/diff/
> 
> 
> Testing
> -------
> 
> `make check` succeeds with an installed gflags library.
> 
> Previously, the following occurs:
> 
> ```
> g++ -DHAVE_CONFIG_H -I. -I./src  -I./src  -pthread    -Wall -Wwrite-strings -Woverloaded-virtual -Wno-sign-compare  -DNO_FRAME_POINTER  -g1 -O0 -Wno-unused-local-typedefs -std=c++11 -MT logging_unittest-logging_unittest.o -MD -MP -MF .deps/logging_unittest-logging_unittest.Tpo -c -o logging_unittest-logging_unittest.o `test -f 'src/logging_unittest.cc' || echo './'`src/logging_unittest.cc
> src/logging_unittest.cc: In function ‘int main(int, char**)’:
> src/logging_unittest.cc:179:43: error: ‘ParseCommandLineFlags’ was not declared in this scope
>    ParseCommandLineFlags(&argc, &argv, true);
>                                            ^
> src/logging_unittest.cc:179:43: note: suggested alternative:
> In file included from src/glog/logging.h:85:0,
>                  from src/utilities.h:82,
>                  from src/logging_unittest.cc:33:
> /usr/include/gflags/gflags.h:346:15: note:   ‘gflags::ParseCommandLineFlags’
>  extern GFLAGS_DLL_DECL uint32 ParseCommandLineFlags(int *argc, char*** argv, bool remove_flags);
>                ^
> src/logging_unittest.cc: In static member function ‘static void Test_DeathNoAllocNewHook_logging::Run()’:
> src/logging_unittest.cc:296:130: error: ‘FlagSaver’ was not declared in this scope
>  TEST(DeathNoAllocNewHook, logging) {
>                                                                                                                                   ^
> src/logging_unittest.cc:296:130: note: suggested alternative:
> In file included from src/glog/logging.h:85:0,
>                  from src/utilities.h:82,
>                  from src/logging_unittest.cc:33:
> /usr/include/gflags/gflags.h:277:7: note:   ‘gflags::FlagSaver’
>  class GFLAGS_DLL_DECL FlagSaver {
>        ^
> src/logging_unittest.cc:296:140: error: expected ‘;’ before ‘fs’
>  TEST(DeathNoAllocNewHook, logging) {
>                                                                                                                                             ^
> src/logging_unittest.cc: In function ‘void TestRawLogging()’:
> src/logging_unittest.cc:308:3: error: ‘FlagSaver’ was not declared in this scope
>    FlagSaver saver;
>    ^
> src/logging_unittest.cc:308:3: note: suggested alternative:
> In file included from src/glog/logging.h:85:0,
>                  from src/utilities.h:82,
>                  from src/logging_unittest.cc:33:
> /usr/include/gflags/gflags.h:277:7: note:   ‘gflags::FlagSaver’
>  class GFLAGS_DLL_DECL FlagSaver {
>        ^
> src/logging_unittest.cc:308:13: error: expected ‘;’ before ‘saver’
>    FlagSaver saver;
>              ^
> src/logging_unittest.cc: In function ‘void LogWithLevels(int, int, bool, bool)’:
> src/logging_unittest.cc:363:3: error: ‘FlagSaver’ was not declared in this scope
>    FlagSaver saver;
>    ^
> src/logging_unittest.cc:363:3: note: suggested alternative:
> In file included from src/glog/logging.h:85:0,
>                  from src/utilities.h:82,
>                  from src/logging_unittest.cc:33:
> /usr/include/gflags/gflags.h:277:7: note:   ‘gflags::FlagSaver’
>  class GFLAGS_DLL_DECL FlagSaver {
>        ^
> src/logging_unittest.cc:363:13: error: expected ‘;’ before ‘saver’
>    FlagSaver saver;
>              ^
> src/logging_unittest.cc: In static member function ‘static void Test_DeathRawCHECK_logging::Run()’:
> src/logging_unittest.cc:436:118: error: ‘FlagSaver’ was not declared in this scope
>  TEST(DeathRawCHECK, logging) {
>                                                                                                                       ^
> src/logging_unittest.cc:436:118: note: suggested alternative:
> In file included from src/glog/logging.h:85:0,
>                  from src/utilities.h:82,
>                  from src/logging_unittest.cc:33:
> /usr/include/gflags/gflags.h:277:7: note:   ‘gflags::FlagSaver’
>  class GFLAGS_DLL_DECL FlagSaver {
>        ^
> src/logging_unittest.cc:436:128: error: expected ‘;’ before ‘fs’
>  TEST(DeathRawCHECK, logging) {
>                                                                                                                                 ^
> src/logging_unittest.cc: In static member function ‘static void Test_DeathSTREQ_logging::Run()’:
> src/logging_unittest.cc:586:112: error: ‘FlagSaver’ was not declared in this scope
>  TEST(DeathSTREQ, logging) {
>                                                                                                                 ^
> src/logging_unittest.cc:586:112: note: suggested alternative:
> In file included from src/glog/logging.h:85:0,
>                  from src/utilities.h:82,
>                  from src/logging_unittest.cc:33:
> /usr/include/gflags/gflags.h:277:7: note:   ‘gflags::FlagSaver’
>  class GFLAGS_DLL_DECL FlagSaver {
>        ^
> src/logging_unittest.cc:586:122: error: expected ‘;’ before ‘fs’
>  TEST(DeathSTREQ, logging) {
>                                                                                                                           ^
> src/logging_unittest.cc: In static member function ‘static void Test_CheckNOTNULL_Simple::Run()’:
> src/logging_unittest.cc:596:114: error: ‘FlagSaver’ was not declared in this scope
>  TEST(CheckNOTNULL, Simple) {
>                                                                                                                   ^
> src/logging_unittest.cc:596:114: note: suggested alternative:
> In file included from src/glog/logging.h:85:0,
>                  from src/utilities.h:82,
>                  from src/logging_unittest.cc:33:
> /usr/include/gflags/gflags.h:277:7: note:   ‘gflags::FlagSaver’
>  class GFLAGS_DLL_DECL FlagSaver {
>        ^
> src/logging_unittest.cc:596:124: error: expected ‘;’ before ‘fs’
>  TEST(CheckNOTNULL, Simple) {
>                                                                                                                             ^
> src/logging_unittest.cc: In static member function ‘static void Test_DeathCheckNN_Simple::Run()’:
> src/logging_unittest.cc:607:114: error: ‘FlagSaver’ was not declared in this scope
>  TEST(DeathCheckNN, Simple) {
>                                                                                                                   ^
> src/logging_unittest.cc:607:114: note: suggested alternative:
> In file included from src/glog/logging.h:85:0,
>                  from src/utilities.h:82,
>                  from src/logging_unittest.cc:33:
> /usr/include/gflags/gflags.h:277:7: note:   ‘gflags::FlagSaver’
>  class GFLAGS_DLL_DECL FlagSaver {
>        ^
> src/logging_unittest.cc:607:124: error: expected ‘;’ before ‘fs’
>  TEST(DeathCheckNN, Simple) {
>                                                                                                                             ^
> src/logging_unittest.cc: In static member function ‘static void Test_SafeFNMatch_logging::Run()’:
> src/logging_unittest.cc:866:114: error: ‘FlagSaver’ was not declared in this scope
>  TEST(SafeFNMatch, logging) {
>                                                                                                                   ^
> src/logging_unittest.cc:866:114: note: suggested alternative:
> In file included from src/glog/logging.h:85:0,
>                  from src/utilities.h:82,
>                  from src/logging_unittest.cc:33:
> /usr/include/gflags/gflags.h:277:7: note:   ‘gflags::FlagSaver’
>  class GFLAGS_DLL_DECL FlagSaver {
>        ^
> src/logging_unittest.cc:866:124: error: expected ‘;’ before ‘fs’
>  TEST(SafeFNMatch, logging) {
>                                                                                                                             ^
> src/logging_unittest.cc: In static member function ‘static void Test_Strerror_logging::Run()’:
> src/logging_unittest.cc:1041:108: error: ‘FlagSaver’ was not declared in this scope
>  TEST(Strerror, logging) {
>                                                                                                             ^
> src/logging_unittest.cc:1041:108: note: suggested alternative:
> In file included from src/glog/logging.h:85:0,
>                  from src/utilities.h:82,
>                  from src/logging_unittest.cc:33:
> /usr/include/gflags/gflags.h:277:7: note:   ‘gflags::FlagSaver’
>  class GFLAGS_DLL_DECL FlagSaver {
>        ^
> src/logging_unittest.cc:1041:118: error: expected ‘;’ before ‘fs’
>  TEST(Strerror, logging) {
>                                                                                                                       ^
> src/logging_unittest.cc: In static member function ‘static void Test_UserDefinedClass_logging::Run()’:
> src/logging_unittest.cc:1206:124: error: ‘FlagSaver’ was not declared in this scope
>  TEST(UserDefinedClass, logging) {
>                                                                                                                             ^
> src/logging_unittest.cc:1206:124: note: suggested alternative:
> In file included from src/glog/logging.h:85:0,
>                  from src/utilities.h:82,
>                  from src/logging_unittest.cc:33:
> /usr/include/gflags/gflags.h:277:7: note:   ‘gflags::FlagSaver’
>  class GFLAGS_DLL_DECL FlagSaver {
>        ^
> src/logging_unittest.cc:1206:134: error: expected ‘;’ before ‘fs’
>  TEST(UserDefinedClass, logging) {
>                                                                                                                                       ^
> make[7]: *** [logging_unittest-logging_unittest.o] Error 1
> ```
> 
> 
> Thanks,
> 
> Ben Mahler
> 
>


Re: Review Request 46804: Patched glog to eliminate system-level gflag library detection.

Posted by Vinod Kone <vi...@gmail.com>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/46804/#review131014
-----------------------------------------------------------


Ship it!




Ship It!

- Vinod Kone


On April 28, 2016, 11:32 p.m., Ben Mahler wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/46804/
> -----------------------------------------------------------
> 
> (Updated April 28, 2016, 11:32 p.m.)
> 
> 
> Review request for mesos, Kapil Arya and Vinod Kone.
> 
> 
> Repository: mesos
> 
> 
> Description
> -------
> 
> The glog library will attempt to detect whether the gflag library
> is installed on the system. However, glog can compile correctly
> when gflags is absent, due to a compatiblity layer:
> 
> https://github.com/google/glog/blob/v0.3.3/src/base/commandlineflags.h
> 
> We do not want a 3rd party dependency on the host to be picked up
> by glog in general. In the case of gflags, it turns out that this
> may break the build (when the gflag headers are incompatible).
> 
> There is no configure flag for disabling this auto-detection, so
> we patch glog to remove it.
> 
> 
> Diffs
> -----
> 
>   3rdparty/libprocess/3rdparty/glog-0.3.3.patch f05f4b56bfc217f3fb82c32b56a950e0fc9956f2 
> 
> Diff: https://reviews.apache.org/r/46804/diff/
> 
> 
> Testing
> -------
> 
> `make check` succeeds with an installed gflags library.
> 
> Previously, the following occurs:
> 
> ```
> g++ -DHAVE_CONFIG_H -I. -I./src  -I./src  -pthread    -Wall -Wwrite-strings -Woverloaded-virtual -Wno-sign-compare  -DNO_FRAME_POINTER  -g1 -O0 -Wno-unused-local-typedefs -std=c++11 -MT logging_unittest-logging_unittest.o -MD -MP -MF .deps/logging_unittest-logging_unittest.Tpo -c -o logging_unittest-logging_unittest.o `test -f 'src/logging_unittest.cc' || echo './'`src/logging_unittest.cc
> src/logging_unittest.cc: In function ‘int main(int, char**)’:
> src/logging_unittest.cc:179:43: error: ‘ParseCommandLineFlags’ was not declared in this scope
>    ParseCommandLineFlags(&argc, &argv, true);
>                                            ^
> src/logging_unittest.cc:179:43: note: suggested alternative:
> In file included from src/glog/logging.h:85:0,
>                  from src/utilities.h:82,
>                  from src/logging_unittest.cc:33:
> /usr/include/gflags/gflags.h:346:15: note:   ‘gflags::ParseCommandLineFlags’
>  extern GFLAGS_DLL_DECL uint32 ParseCommandLineFlags(int *argc, char*** argv, bool remove_flags);
>                ^
> src/logging_unittest.cc: In static member function ‘static void Test_DeathNoAllocNewHook_logging::Run()’:
> src/logging_unittest.cc:296:130: error: ‘FlagSaver’ was not declared in this scope
>  TEST(DeathNoAllocNewHook, logging) {
>                                                                                                                                   ^
> src/logging_unittest.cc:296:130: note: suggested alternative:
> In file included from src/glog/logging.h:85:0,
>                  from src/utilities.h:82,
>                  from src/logging_unittest.cc:33:
> /usr/include/gflags/gflags.h:277:7: note:   ‘gflags::FlagSaver’
>  class GFLAGS_DLL_DECL FlagSaver {
>        ^
> src/logging_unittest.cc:296:140: error: expected ‘;’ before ‘fs’
>  TEST(DeathNoAllocNewHook, logging) {
>                                                                                                                                             ^
> src/logging_unittest.cc: In function ‘void TestRawLogging()’:
> src/logging_unittest.cc:308:3: error: ‘FlagSaver’ was not declared in this scope
>    FlagSaver saver;
>    ^
> src/logging_unittest.cc:308:3: note: suggested alternative:
> In file included from src/glog/logging.h:85:0,
>                  from src/utilities.h:82,
>                  from src/logging_unittest.cc:33:
> /usr/include/gflags/gflags.h:277:7: note:   ‘gflags::FlagSaver’
>  class GFLAGS_DLL_DECL FlagSaver {
>        ^
> src/logging_unittest.cc:308:13: error: expected ‘;’ before ‘saver’
>    FlagSaver saver;
>              ^
> src/logging_unittest.cc: In function ‘void LogWithLevels(int, int, bool, bool)’:
> src/logging_unittest.cc:363:3: error: ‘FlagSaver’ was not declared in this scope
>    FlagSaver saver;
>    ^
> src/logging_unittest.cc:363:3: note: suggested alternative:
> In file included from src/glog/logging.h:85:0,
>                  from src/utilities.h:82,
>                  from src/logging_unittest.cc:33:
> /usr/include/gflags/gflags.h:277:7: note:   ‘gflags::FlagSaver’
>  class GFLAGS_DLL_DECL FlagSaver {
>        ^
> src/logging_unittest.cc:363:13: error: expected ‘;’ before ‘saver’
>    FlagSaver saver;
>              ^
> src/logging_unittest.cc: In static member function ‘static void Test_DeathRawCHECK_logging::Run()’:
> src/logging_unittest.cc:436:118: error: ‘FlagSaver’ was not declared in this scope
>  TEST(DeathRawCHECK, logging) {
>                                                                                                                       ^
> src/logging_unittest.cc:436:118: note: suggested alternative:
> In file included from src/glog/logging.h:85:0,
>                  from src/utilities.h:82,
>                  from src/logging_unittest.cc:33:
> /usr/include/gflags/gflags.h:277:7: note:   ‘gflags::FlagSaver’
>  class GFLAGS_DLL_DECL FlagSaver {
>        ^
> src/logging_unittest.cc:436:128: error: expected ‘;’ before ‘fs’
>  TEST(DeathRawCHECK, logging) {
>                                                                                                                                 ^
> src/logging_unittest.cc: In static member function ‘static void Test_DeathSTREQ_logging::Run()’:
> src/logging_unittest.cc:586:112: error: ‘FlagSaver’ was not declared in this scope
>  TEST(DeathSTREQ, logging) {
>                                                                                                                 ^
> src/logging_unittest.cc:586:112: note: suggested alternative:
> In file included from src/glog/logging.h:85:0,
>                  from src/utilities.h:82,
>                  from src/logging_unittest.cc:33:
> /usr/include/gflags/gflags.h:277:7: note:   ‘gflags::FlagSaver’
>  class GFLAGS_DLL_DECL FlagSaver {
>        ^
> src/logging_unittest.cc:586:122: error: expected ‘;’ before ‘fs’
>  TEST(DeathSTREQ, logging) {
>                                                                                                                           ^
> src/logging_unittest.cc: In static member function ‘static void Test_CheckNOTNULL_Simple::Run()’:
> src/logging_unittest.cc:596:114: error: ‘FlagSaver’ was not declared in this scope
>  TEST(CheckNOTNULL, Simple) {
>                                                                                                                   ^
> src/logging_unittest.cc:596:114: note: suggested alternative:
> In file included from src/glog/logging.h:85:0,
>                  from src/utilities.h:82,
>                  from src/logging_unittest.cc:33:
> /usr/include/gflags/gflags.h:277:7: note:   ‘gflags::FlagSaver’
>  class GFLAGS_DLL_DECL FlagSaver {
>        ^
> src/logging_unittest.cc:596:124: error: expected ‘;’ before ‘fs’
>  TEST(CheckNOTNULL, Simple) {
>                                                                                                                             ^
> src/logging_unittest.cc: In static member function ‘static void Test_DeathCheckNN_Simple::Run()’:
> src/logging_unittest.cc:607:114: error: ‘FlagSaver’ was not declared in this scope
>  TEST(DeathCheckNN, Simple) {
>                                                                                                                   ^
> src/logging_unittest.cc:607:114: note: suggested alternative:
> In file included from src/glog/logging.h:85:0,
>                  from src/utilities.h:82,
>                  from src/logging_unittest.cc:33:
> /usr/include/gflags/gflags.h:277:7: note:   ‘gflags::FlagSaver’
>  class GFLAGS_DLL_DECL FlagSaver {
>        ^
> src/logging_unittest.cc:607:124: error: expected ‘;’ before ‘fs’
>  TEST(DeathCheckNN, Simple) {
>                                                                                                                             ^
> src/logging_unittest.cc: In static member function ‘static void Test_SafeFNMatch_logging::Run()’:
> src/logging_unittest.cc:866:114: error: ‘FlagSaver’ was not declared in this scope
>  TEST(SafeFNMatch, logging) {
>                                                                                                                   ^
> src/logging_unittest.cc:866:114: note: suggested alternative:
> In file included from src/glog/logging.h:85:0,
>                  from src/utilities.h:82,
>                  from src/logging_unittest.cc:33:
> /usr/include/gflags/gflags.h:277:7: note:   ‘gflags::FlagSaver’
>  class GFLAGS_DLL_DECL FlagSaver {
>        ^
> src/logging_unittest.cc:866:124: error: expected ‘;’ before ‘fs’
>  TEST(SafeFNMatch, logging) {
>                                                                                                                             ^
> src/logging_unittest.cc: In static member function ‘static void Test_Strerror_logging::Run()’:
> src/logging_unittest.cc:1041:108: error: ‘FlagSaver’ was not declared in this scope
>  TEST(Strerror, logging) {
>                                                                                                             ^
> src/logging_unittest.cc:1041:108: note: suggested alternative:
> In file included from src/glog/logging.h:85:0,
>                  from src/utilities.h:82,
>                  from src/logging_unittest.cc:33:
> /usr/include/gflags/gflags.h:277:7: note:   ‘gflags::FlagSaver’
>  class GFLAGS_DLL_DECL FlagSaver {
>        ^
> src/logging_unittest.cc:1041:118: error: expected ‘;’ before ‘fs’
>  TEST(Strerror, logging) {
>                                                                                                                       ^
> src/logging_unittest.cc: In static member function ‘static void Test_UserDefinedClass_logging::Run()’:
> src/logging_unittest.cc:1206:124: error: ‘FlagSaver’ was not declared in this scope
>  TEST(UserDefinedClass, logging) {
>                                                                                                                             ^
> src/logging_unittest.cc:1206:124: note: suggested alternative:
> In file included from src/glog/logging.h:85:0,
>                  from src/utilities.h:82,
>                  from src/logging_unittest.cc:33:
> /usr/include/gflags/gflags.h:277:7: note:   ‘gflags::FlagSaver’
>  class GFLAGS_DLL_DECL FlagSaver {
>        ^
> src/logging_unittest.cc:1206:134: error: expected ‘;’ before ‘fs’
>  TEST(UserDefinedClass, logging) {
>                                                                                                                                       ^
> make[7]: *** [logging_unittest-logging_unittest.o] Error 1
> ```
> 
> 
> Thanks,
> 
> Ben Mahler
> 
>


Re: Review Request 46804: Patched glog to eliminate system-level gflag library detection.

Posted by Vinod Kone <vi...@gmail.com>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/46804/#review131012
-----------------------------------------------------------




3rdparty/libprocess/3rdparty/glog-0.3.3.patch (line 197)
<https://reviews.apache.org/r/46804/#comment194936>

    So GFLAGS_CFLAGS and GFLAGS_LIBS is not set at all with this patch. I'm guessing that's ok even though those variables are referenced elsewhere in this configure.ac?


- Vinod Kone


On April 28, 2016, 11:32 p.m., Ben Mahler wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/46804/
> -----------------------------------------------------------
> 
> (Updated April 28, 2016, 11:32 p.m.)
> 
> 
> Review request for mesos, Kapil Arya and Vinod Kone.
> 
> 
> Repository: mesos
> 
> 
> Description
> -------
> 
> The glog library will attempt to detect whether the gflag library
> is installed on the system. However, glog can compile correctly
> when gflags is absent, due to a compatiblity layer:
> 
> https://github.com/google/glog/blob/v0.3.3/src/base/commandlineflags.h
> 
> We do not want a 3rd party dependency on the host to be picked up
> by glog in general. In the case of gflags, it turns out that this
> may break the build (when the gflag headers are incompatible).
> 
> There is no configure flag for disabling this auto-detection, so
> we patch glog to remove it.
> 
> 
> Diffs
> -----
> 
>   3rdparty/libprocess/3rdparty/glog-0.3.3.patch f05f4b56bfc217f3fb82c32b56a950e0fc9956f2 
> 
> Diff: https://reviews.apache.org/r/46804/diff/
> 
> 
> Testing
> -------
> 
> `make check` succeeds with an installed gflags library.
> 
> Previously, the following occurs:
> 
> ```
> g++ -DHAVE_CONFIG_H -I. -I./src  -I./src  -pthread    -Wall -Wwrite-strings -Woverloaded-virtual -Wno-sign-compare  -DNO_FRAME_POINTER  -g1 -O0 -Wno-unused-local-typedefs -std=c++11 -MT logging_unittest-logging_unittest.o -MD -MP -MF .deps/logging_unittest-logging_unittest.Tpo -c -o logging_unittest-logging_unittest.o `test -f 'src/logging_unittest.cc' || echo './'`src/logging_unittest.cc
> src/logging_unittest.cc: In function ‘int main(int, char**)’:
> src/logging_unittest.cc:179:43: error: ‘ParseCommandLineFlags’ was not declared in this scope
>    ParseCommandLineFlags(&argc, &argv, true);
>                                            ^
> src/logging_unittest.cc:179:43: note: suggested alternative:
> In file included from src/glog/logging.h:85:0,
>                  from src/utilities.h:82,
>                  from src/logging_unittest.cc:33:
> /usr/include/gflags/gflags.h:346:15: note:   ‘gflags::ParseCommandLineFlags’
>  extern GFLAGS_DLL_DECL uint32 ParseCommandLineFlags(int *argc, char*** argv, bool remove_flags);
>                ^
> src/logging_unittest.cc: In static member function ‘static void Test_DeathNoAllocNewHook_logging::Run()’:
> src/logging_unittest.cc:296:130: error: ‘FlagSaver’ was not declared in this scope
>  TEST(DeathNoAllocNewHook, logging) {
>                                                                                                                                   ^
> src/logging_unittest.cc:296:130: note: suggested alternative:
> In file included from src/glog/logging.h:85:0,
>                  from src/utilities.h:82,
>                  from src/logging_unittest.cc:33:
> /usr/include/gflags/gflags.h:277:7: note:   ‘gflags::FlagSaver’
>  class GFLAGS_DLL_DECL FlagSaver {
>        ^
> src/logging_unittest.cc:296:140: error: expected ‘;’ before ‘fs’
>  TEST(DeathNoAllocNewHook, logging) {
>                                                                                                                                             ^
> src/logging_unittest.cc: In function ‘void TestRawLogging()’:
> src/logging_unittest.cc:308:3: error: ‘FlagSaver’ was not declared in this scope
>    FlagSaver saver;
>    ^
> src/logging_unittest.cc:308:3: note: suggested alternative:
> In file included from src/glog/logging.h:85:0,
>                  from src/utilities.h:82,
>                  from src/logging_unittest.cc:33:
> /usr/include/gflags/gflags.h:277:7: note:   ‘gflags::FlagSaver’
>  class GFLAGS_DLL_DECL FlagSaver {
>        ^
> src/logging_unittest.cc:308:13: error: expected ‘;’ before ‘saver’
>    FlagSaver saver;
>              ^
> src/logging_unittest.cc: In function ‘void LogWithLevels(int, int, bool, bool)’:
> src/logging_unittest.cc:363:3: error: ‘FlagSaver’ was not declared in this scope
>    FlagSaver saver;
>    ^
> src/logging_unittest.cc:363:3: note: suggested alternative:
> In file included from src/glog/logging.h:85:0,
>                  from src/utilities.h:82,
>                  from src/logging_unittest.cc:33:
> /usr/include/gflags/gflags.h:277:7: note:   ‘gflags::FlagSaver’
>  class GFLAGS_DLL_DECL FlagSaver {
>        ^
> src/logging_unittest.cc:363:13: error: expected ‘;’ before ‘saver’
>    FlagSaver saver;
>              ^
> src/logging_unittest.cc: In static member function ‘static void Test_DeathRawCHECK_logging::Run()’:
> src/logging_unittest.cc:436:118: error: ‘FlagSaver’ was not declared in this scope
>  TEST(DeathRawCHECK, logging) {
>                                                                                                                       ^
> src/logging_unittest.cc:436:118: note: suggested alternative:
> In file included from src/glog/logging.h:85:0,
>                  from src/utilities.h:82,
>                  from src/logging_unittest.cc:33:
> /usr/include/gflags/gflags.h:277:7: note:   ‘gflags::FlagSaver’
>  class GFLAGS_DLL_DECL FlagSaver {
>        ^
> src/logging_unittest.cc:436:128: error: expected ‘;’ before ‘fs’
>  TEST(DeathRawCHECK, logging) {
>                                                                                                                                 ^
> src/logging_unittest.cc: In static member function ‘static void Test_DeathSTREQ_logging::Run()’:
> src/logging_unittest.cc:586:112: error: ‘FlagSaver’ was not declared in this scope
>  TEST(DeathSTREQ, logging) {
>                                                                                                                 ^
> src/logging_unittest.cc:586:112: note: suggested alternative:
> In file included from src/glog/logging.h:85:0,
>                  from src/utilities.h:82,
>                  from src/logging_unittest.cc:33:
> /usr/include/gflags/gflags.h:277:7: note:   ‘gflags::FlagSaver’
>  class GFLAGS_DLL_DECL FlagSaver {
>        ^
> src/logging_unittest.cc:586:122: error: expected ‘;’ before ‘fs’
>  TEST(DeathSTREQ, logging) {
>                                                                                                                           ^
> src/logging_unittest.cc: In static member function ‘static void Test_CheckNOTNULL_Simple::Run()’:
> src/logging_unittest.cc:596:114: error: ‘FlagSaver’ was not declared in this scope
>  TEST(CheckNOTNULL, Simple) {
>                                                                                                                   ^
> src/logging_unittest.cc:596:114: note: suggested alternative:
> In file included from src/glog/logging.h:85:0,
>                  from src/utilities.h:82,
>                  from src/logging_unittest.cc:33:
> /usr/include/gflags/gflags.h:277:7: note:   ‘gflags::FlagSaver’
>  class GFLAGS_DLL_DECL FlagSaver {
>        ^
> src/logging_unittest.cc:596:124: error: expected ‘;’ before ‘fs’
>  TEST(CheckNOTNULL, Simple) {
>                                                                                                                             ^
> src/logging_unittest.cc: In static member function ‘static void Test_DeathCheckNN_Simple::Run()’:
> src/logging_unittest.cc:607:114: error: ‘FlagSaver’ was not declared in this scope
>  TEST(DeathCheckNN, Simple) {
>                                                                                                                   ^
> src/logging_unittest.cc:607:114: note: suggested alternative:
> In file included from src/glog/logging.h:85:0,
>                  from src/utilities.h:82,
>                  from src/logging_unittest.cc:33:
> /usr/include/gflags/gflags.h:277:7: note:   ‘gflags::FlagSaver’
>  class GFLAGS_DLL_DECL FlagSaver {
>        ^
> src/logging_unittest.cc:607:124: error: expected ‘;’ before ‘fs’
>  TEST(DeathCheckNN, Simple) {
>                                                                                                                             ^
> src/logging_unittest.cc: In static member function ‘static void Test_SafeFNMatch_logging::Run()’:
> src/logging_unittest.cc:866:114: error: ‘FlagSaver’ was not declared in this scope
>  TEST(SafeFNMatch, logging) {
>                                                                                                                   ^
> src/logging_unittest.cc:866:114: note: suggested alternative:
> In file included from src/glog/logging.h:85:0,
>                  from src/utilities.h:82,
>                  from src/logging_unittest.cc:33:
> /usr/include/gflags/gflags.h:277:7: note:   ‘gflags::FlagSaver’
>  class GFLAGS_DLL_DECL FlagSaver {
>        ^
> src/logging_unittest.cc:866:124: error: expected ‘;’ before ‘fs’
>  TEST(SafeFNMatch, logging) {
>                                                                                                                             ^
> src/logging_unittest.cc: In static member function ‘static void Test_Strerror_logging::Run()’:
> src/logging_unittest.cc:1041:108: error: ‘FlagSaver’ was not declared in this scope
>  TEST(Strerror, logging) {
>                                                                                                             ^
> src/logging_unittest.cc:1041:108: note: suggested alternative:
> In file included from src/glog/logging.h:85:0,
>                  from src/utilities.h:82,
>                  from src/logging_unittest.cc:33:
> /usr/include/gflags/gflags.h:277:7: note:   ‘gflags::FlagSaver’
>  class GFLAGS_DLL_DECL FlagSaver {
>        ^
> src/logging_unittest.cc:1041:118: error: expected ‘;’ before ‘fs’
>  TEST(Strerror, logging) {
>                                                                                                                       ^
> src/logging_unittest.cc: In static member function ‘static void Test_UserDefinedClass_logging::Run()’:
> src/logging_unittest.cc:1206:124: error: ‘FlagSaver’ was not declared in this scope
>  TEST(UserDefinedClass, logging) {
>                                                                                                                             ^
> src/logging_unittest.cc:1206:124: note: suggested alternative:
> In file included from src/glog/logging.h:85:0,
>                  from src/utilities.h:82,
>                  from src/logging_unittest.cc:33:
> /usr/include/gflags/gflags.h:277:7: note:   ‘gflags::FlagSaver’
>  class GFLAGS_DLL_DECL FlagSaver {
>        ^
> src/logging_unittest.cc:1206:134: error: expected ‘;’ before ‘fs’
>  TEST(UserDefinedClass, logging) {
>                                                                                                                                       ^
> make[7]: *** [logging_unittest-logging_unittest.o] Error 1
> ```
> 
> 
> Thanks,
> 
> Ben Mahler
> 
>