Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Falco does not compile against glibc 2.30 #921

Closed
fntlnz opened this issue Nov 8, 2019 · 2 comments · Fixed by #939
Closed

Falco does not compile against glibc 2.30 #921

fntlnz opened this issue Nov 8, 2019 · 2 comments · Fixed by #939

Comments

@fntlnz
Copy link
Contributor

fntlnz commented Nov 8, 2019

What would you like to be added:

Falco can't compile against glibc 2.30 because this version has a function called gettid which is also declared in our other dependency gRPC 1.8.1

In gRPC the issue was fixed by this PR grpc/grpc#18950

src/core/lib/support/log_linux.cc:42:13: error: ambiguating new declaration of 'long int gettid()'                                                                                                                                                                      
   42 | static long gettid(void) { return syscall(__NR_gettid); }                                                                                                                                                                                                       
      |             ^~~~~~                                                                                                                                                                                                                                              
In file included from /usr/include/unistd.h:1170,                                                                                                                                                                                                                       
                 from src/core/lib/support/log_linux.cc:40:                                                                                                                                                                                                             
/usr/include/bits/unistd_ext.h:34:16: note: old declaration '__pid_t gettid()'                                                                                                                                                                                          
   34 | extern __pid_t gettid (void) __THROW;                                                                                                                                                                                                                           
      |                ^~~~~~                                                                                                                                                                                                                                           
src/core/lib/support/log_linux.cc:42:13: error: 'long int gettid()' defined but not used [-Werror=unused-function]                                                                                                                                                      
   42 | static long gettid(void) { return syscall(__NR_gettid); }                                                                                                                                                                                                       
      |             ^~~~~~                                                                                                                                                                                                                                              
cc1plus: all warnings being treated as errors                                                                                                                                                                                                                           
make[3]: *** [Makefile:2587: /home/fntlnz/Projects/falcosecurity/falco/build/grpc-prefix/src/grpc/objs/opt/src/core/lib/support/log_linux.o] Error 1                                                                                                                    
make[2]: *** [CMakeFiles/grpc.dir/build.make:118: grpc-prefix/src/grpc-stamp/grpc-build] Error 2                                                                                                                                                                        
make[1]: *** [CMakeFiles/Makefile2:391: CMakeFiles/grpc.dir/all] Error 2                                                                                                                                                                                                
make: *** [Makefile:152: all] Error 2   

Why is this needed:

Because we want people to be able to compile falco when they update glibc and gcc.

@fntlnz fntlnz changed the title Does not compile against glibc 2.30 Falco does not compile against glibc 2.30 Nov 8, 2019
@prankkelkar
Copy link

I am facing this issue on ubuntu 19.10.
root@prasanna:/home/ubuntu/0.18.0/falco/build/release# ldd --version ldd (Ubuntu GLIBC 2.30-0ubuntu2) 2.30 Copyright (C) 2019 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. Written by Roland McGrath and Ulrich Drepper.
How are we planning to overcome this ?

@fntlnz
Copy link
Contributor Author

fntlnz commented Nov 21, 2019

@prankkelkar We need to update the gRPC library in order to do this but we need to write some key features test first to ensure we don't break anything. In the meanwhile I'm restructuring how we use gRPC as a dependency to make the update work faster and smoother once we can update.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants