{"comment":{"url":"https://api.github.com/repos/bsdsx/OpenSMTPD/comments/12119072","html_url":"https://github.com/bsdsx/OpenSMTPD/commit/3956f13af1a9e420b4e92e7199020687d114917d#commitcomment-12119072","id":12119072,"user":{"login":"poolpOrg","id":895503,"avatar_url":"https://avatars.githubusercontent.com/u/895503?v=3","gravatar_id":"","url":"https://api.github.com/users/poolpOrg","html_url":"https://github.com/poolpOrg","followers_url":"https://api.github.com/users/poolpOrg/followers","following_url":"https://api.github.com/users/poolpOrg/following{/other_user}","gists_url":"https://api.github.com/users/poolpOrg/gists{/gist_id}","starred_url":"https://api.github.com/users/poolpOrg/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/poolpOrg/subscriptions","organizations_url":"https://api.github.com/users/poolpOrg/orgs","repos_url":"https://api.github.com/users/poolpOrg/repos","events_url":"https://api.github.com/users/poolpOrg/events{/privacy}","received_events_url":"https://api.github.com/users/poolpOrg/received_events","type":"User","site_admin":false},"position":null,"line":null,"path":"","commit_id":"3956f13af1a9e420b4e92e7199020687d114917d","created_at":"2015-07-11T14:43:14Z","updated_at":"2015-07-11T14:43:14Z","body":"This is not ok, 2 reasons:\r\n\r\nFirst of all, we want the smtpd/ directory free of ifdef's so, unless for very specific cases which have a good rationale and for some headers, you have to solve this at the portable glue layer (either configure.ac or openbsd-compat/*).\r\n\r\nThen, when you're forced to use conditional preprocessor macros, you must ensure that they do not test a system but that they test a feature. In this case, you're testing M_DATA and the sun/__sun are not really relevant, if someone forks your OS or comes with an OS that already has M_DATA, they will face the same issue.\r\n\r\nSo my suggestions:\r\n1- check in configure.ac if M_DATA is defined, if it is then undef it from \"includes.h\"\r\n2- drop the defined(sun) || defined(__sun)\r\n"}}