-
Notifications
You must be signed in to change notification settings - Fork 0
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
fix name clash in mach/policy.h and gps.h #1
base: master
Are you sure you want to change the base?
Conversation
mach/policy is a system header included by rtt
#include "GPSDTask.hpp" | ||
|
||
// workaround for name clash in | ||
// usr/include/mach/policy.h and gpsd/3.15/include/gps.h |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Shouldn't the workaround be in the header itself ?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Not really, the problem is that we include libgpsmm.h here which is including gpsd/3.15/include/gps.h using an already used system typedef. From my point of view the right fix would be to change the name in gps.h but this is out of my scope.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ambiguous statement on my side...
"Shouldn't the workaround be in GPSDTask.hpp ?"
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
You could move it there but the problem only occurs in combination with libgpsmm.h which might not be included by other orogen tasks inherit from this task. Therefore, to not globally undef policy_t I would keep it in the c++ file, No?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I am so missing something. Why do you need to define policy_t before including GPSDTask.hpp if the problem is in libgpsmm ?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I basically rename policy_t to mach_policy_t insight mach/policy.h using the pre compiler. After that I can undef policy_t which would not be possible if mach/policy.h would have used it for its typedef. Now, the policy_t is free to be used by gps.h for its struct.
mach/policy is a system header included by rtt