Re: Ajuda em declaração
Antonio Terceiro <[email protected]>
| Newsgroups | gmane.linux.debian.devel.portuguese |
|---|---|
| Message-ID | <[email protected]> |
On Tue, Apr 05, 2016 at 08:38:32AM -0300, Antonio Terceiro wrote:
> On Mon, Apr 04, 2016 at 09:37:44AM -0300, Junior Santos wrote:
> > -#if defined(__FreeBSD__)
> > +#if defined(__FreeBSD_Kernel__)
> >
> > Como posso definir estas variasse de forma que elas
> > usem se possível uma ou outra.
>
> essas macros são pré-definidas no sistema em questão, você não precisa
> se preocupar em definir elas você mesmo.
>
> > Tenho um pacote e preciso ter as duas, pode ser que
> > alguma arquitetura de FreeBSD precise desta declaração.
> > Seria esta a forma correta :
> >
> > "#if defined (__FreeBSD__) || defined (__FreeBSD_Kernel__)”
>
> se você precisa ter _as duas_ (e não qualquer umas das duas), você quer
> && ao invés de ||:
>
> #if defined(__FreeBSD__) && defined(__FreeBSD_Kernel__)
2 coisas aqui:
0) o nome de uma delas está errado, é __FreeBSD_kernel__ com o "k" de
"kernel" minúsculo
1) as duas flags só vão estar definidas, pelo que eu entendo, no FreeBSD
propriamente dito, no Debian GNU/kfreebsd só a __FreeBSD_kernel__ vai
estar. Fiz o seguinte teste numa porterbox kfreebsd-amd64 do Debian:
$ cat test.c
#include <stdio.h>
int main() {
#if defined (__FreeBSD_kernel__)
printf("freebsd kernel\n");
#endif
#if defined(__FreeBSD__)
printf("freebsd\n");
#endif
return 0;
}
$ make test
cc test.c -o test
$ ./test
freebsd kernel
mais informações:
http://glibc-bsd.alioth.debian.org/porting/PORTING
signature.asc
(application/pgp-signature, 819 B)
-----BEGIN PGP SIGNATURE----- Version: GnuPG v1 iQIcBAEBCAAGBQJXA6V+AAoJEPwNsbvNRgveUAoP/j5bxUw1yi7+W13LMYTEAYL/ 7MSPH6ovf7n/hQCmyMYb7Dhmrc5lWXeuNa0WRI0+/QtZtdjPKjAXSKIBaStPqlXW d7UfCVWTnbYo/oXgCSciNxneTbr6XGdeBOoHR5+O3wN6558knUE10K8TuyMP2DFl h2XHbVm8Ff0Hda4JGmxQSBDHktS1EzQWN31DVSzNZBpwOphgCtsJoWNKbiixdYhQ S5dmOMwQeR8aRr8MvbU9iF3m/Jg1NphUur7WbBMZaH+fCPw4lyMQ7POhjcs3RwYX T8JUlAJWc855iZPw7CVB60/IcXh5rebh6CLgWjAsX/kjJ1A6QKU5Deoz9nfQ5XRe 4MhB5cfycIi7QMaXtIROvwyAX4JA98xKWlzAVXELFgEvTX6lDaMF0adpR0aPfRv1 70dVjwVSUQqGP5O3VuUStrxTXdEvFx5eEDLjYm91POXq6cr0UCCpoCsEvOJh/8gw cnsTxpIt6K5oLVcabuNA7Mpg3UaZI/xvwCIqkkh221FLmi/lhZPjcz4ZWQnZbrOG Vro8TrZ8s1Rps5XOqmWU9rDQl2BE/y3UXxyR9l0rRk0m+z6QQfQz3QelPRjCl5vu pQJmzAxbVGPb8zsTnis0NEuvp6gZ0BFbAav2jbWdaZ1bshYav3OJSGr/ZzGpCi+t FomKgvt4WlhVyY1b8/XE =T++w -----END PGP SIGNATURE-----