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-----
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.