Re: Ajuda em declaração

2016-04-09 Por tôpico Antonio Terceiro
On Tue, Apr 05, 2016 at 09:54:22AM -0300, Junior Santos wrote:
> 
> > Em 5 de abr de 2016, à(s) 09:34, Junior Santos  
> > escreveu:
> > 
> > 
> > Em 5 de abr de 2016, à(s) 08:46, Antonio Terceiro  
> > escreveu:
> > 
> > 2 coisas aqui:
> 
> Por exemplo pode me ajudar neste erro [1]
> 
> A compilação está dando erro no kfreebsd-amd64
> 
> [1] 
> https://buildd.debian.org/status/fetch.php?pkg=mini-httpd=kfreebsd-amd64=1.23-1=1459766533

pelo que eu pude entender, as checagens no arquivo port.h estão erradas.
tem um patch dentro do pacote em debian/patches/04-kfreebsd.dpatch que
eu _acho_ que resolveria a questão, mas ele não está listado em
debian/patches/series, então não está sendo aplicado.


signature.asc
Description: PGP signature


Re: Ajuda em declaração

2016-04-05 Por tôpico Junior Santos

> Em 5 de abr de 2016, à(s) 08:46, Antonio Terceiro  
> escreveu:
> 
> 2 coisas aqui:

Perfeito Antonio vlw.

Sim na verdade tem que ser uma ou outra pra a compilação do pacote mini-httpd
pois no caso se o OS for FreeBSD vai ser uma e se for freebsd outra, pra 
retirar um erro
que estava dando na hora de compilar no freebsd.

Vou testar as compilações depois

[]`s
JJ


signature.asc
Description: Message signed with OpenPGP using GPGMail


Re: Ajuda em declaração

2016-04-05 Por tôpico Antonio Terceiro
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 

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
Description: PGP signature


Re: Ajuda em declaração

2016-04-05 Por tôpico Antonio Terceiro
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__)

-- 
Antonio Terceiro 


signature.asc
Description: PGP signature


Re: Ajuda em declaração

2016-04-04 Por tôpico Albino B Neto
2016-04-04 9:37 GMT-03:00 Junior Santos :
> Seria esta a forma correta :
>
> "#if defined (__FreeBSD__) || defined (__FreeBSD_Kernel__)”

A declaração está correta [0].

0 - https://gcc.gnu.org/onlinedocs/cpp/Defined.html

-- 
  Happy hacking,
  Albino
@b1n0anb