# [RISOLTO] Failed to emerge bitlbee

## Andrey_

Salve a tutti.

Volevo provare bitlbee, per il protocollo msn, così ho aggiunto la USE flag "msn" in /etc/make.conf, e ho dato emerge bitlbee, ma:

```
>>> Failed to emerge net-im/bitlbee-1.2.3-r1, Log file:

>>>  '/var/tmp/portage/net-im/bitlbee-1.2.3-r1/temp/build.log'

 * Messages for package net-im/bitlbee-1.2.3-r1:

 * Note: Support for all IM protocols are controlled by use flags.

 *       Make sure you've enabled the flags you want.

 * 

 * ERROR: net-im/bitlbee-1.2.3-r1 failed:

 *   make failed

 * 

 * Call stack:

 *     ebuild.sh, line  54:  Called src_compile

 *   environment, line 2648:  Called die

 * The specific snippet of code:

 *       emake || die "make failed";

 * 

 * If you need support, post the output of 'emerge --info =net-im/bitlbee-1.2.3-r1',

 * the complete build log and the output of 'emerge -pqv =net-im/bitlbee-1.2.3-r1'.

 * The complete build log is located at '/var/tmp/portage/net-im/bitlbee-1.2.3-r1/temp/build.log'.

 * The ebuild environment file is located at '/var/tmp/portage/net-im/bitlbee-1.2.3-r1/temp/environment'.

 * S: '/var/tmp/portage/net-im/bitlbee-1.2.3-r1/work/bitlbee-1.2.3'
```

Come suggerito, posto l'output di "emerge --info =net-im/bitlbee-1.2.3-r1":

```
Portage 2.1.7.16 (default/linux/x86/10.0, gcc-4.3.4, glibc-2.10.1-r1, 2.6.31-gentoo-r6 i686)

=================================================================

                        System Settings

=================================================================

System uname: Linux-2.6.31-gentoo-r6-i686-Intel-R-_Core-TM-2_Duo_CPU_E6850_@_3.00GHz-with-gentoo-1.12.13

Timestamp of tree: Sun, 07 Feb 2010 01:45:01 +0000

app-shells/bash:     4.0_p35

dev-lang/python:     2.6.4

dev-util/cmake:      2.6.4-r3

sys-apps/baselayout: 1.12.13

sys-apps/sandbox:    1.6-r2

sys-devel/autoconf:  2.13, 2.63-r1

sys-devel/automake:  1.9.6-r2, 1.10.2

sys-devel/binutils:  2.18-r3

sys-devel/gcc:       4.3.4

sys-devel/gcc-config: 1.4.1

sys-devel/libtool:   2.2.6b

virtual/os-headers:  2.6.27-r2

ACCEPT_KEYWORDS="x86"

ACCEPT_LICENSE="* -@EULA PUEL"

CBUILD="i686-pc-linux-gnu"

CFLAGS="-O2 -march=native -pipe -std=c99"

CHOST="i686-pc-linux-gnu"

CONFIG_PROTECT="/etc /usr/share/X11/xkb"

CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/php/apache2-php5/ext-active/ /etc/php/cgi-php5/ext-active/ /etc/php/cli-php5/ext-active/ /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo /etc/udev/rules.d"

CXXFLAGS="-O2 -march=native -pipe -std=c99"

DISTDIR="/usr/portage/distfiles"

FEATURES="assume-digests distlocks fixpackages news parallel-fetch protect-owned sandbox sfperms strict unmerge-logs unmerge-orphans userfetch"

GENTOO_MIRRORS="http://mirror.switch.ch/ftp/mirror/gentoo/ ftp://mirror.switch.ch/mirror/gentoo/ ftp://mirror.qubenet.net/mirror/gentoo/ ftp://gentoo.virginmedia.com/sites/gentoo http://gentoo.virginmedia.com/ http://mirror.qubenet.net/mirror/gentoo/ http://www.mirrorservice.org/sites/www.ibiblio.org/gentoo/ ftp://mirror.bytemark.co.uk/gentoo/ ftp://ftp.mirrorservice.org/sites/www.ibiblio.org/gentoo/ http://mirror.bytemark.co.uk/gentoo/ "

LANG="it_IT.UTF-8"

LDFLAGS="-Wl,-O1"

MAKEOPTS="-j3"

PKGDIR="/usr/portage/packages"

PORTAGE_CONFIGROOT="/"

PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages"

PORTAGE_TMPDIR="/var/tmp"

PORTDIR="/usr/portage"

SYNC="rsync://rsync.europe.gentoo.org/gentoo-portage"

USE="X acl apache2 berkdb bzip2 cairo cli cracklib crypt cups cxx dri fortran gd gdbm gpm gtk iconv imlib ipv6 jpeg mad modules mp3 msn mudflap mysql mysqli ncurses nls nptl nptlonly openmp pam pcf pcre perl php png pppd psf python readline reflection ru-g session spl ssl suhosin sysfs tcpd tiff truetype unicode vim-syntax x86 xorg zlib" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1 emu10k1x ens1370 ens1371 es1938 es1968 fm801 hda-intel intel8x0 intel8x0m maestro3 trident usb-audio via82xx via82xx-modem ymfpci" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mmap_emul mulaw multi null plug rate route share shm softvol" APACHE2_MODULES="actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" ELIBC="glibc" INPUT_DEVICES="evdev" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" RUBY_TARGETS="ruby18" USERLAND="GNU" VIDEO_CARDS="nvidia" 

Unset:  CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, FFLAGS, INSTALL_MASK, LC_ALL, LINGUAS, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS, PORTDIR_OVERLAY
```

E di "emerge -pqv =net-im/bitlbee-1.2.3-r1":

```
[ebuild  N    ] net-im/bitlbee-1.2.3-r1  USE="ipv6 jabber msn oscar ssl yahoo -debug -gnutls -nss -test -xinetd"
```

Da quel che vedo non è un problema di Flags, infatti ho provato a dare un "cat /var/tmp/portage/net-im/bitlbee-1.2.3-r1/temp/build.log | grep -i error" e mi da il seguente output:

```
proxy.c:72: error: ‘struct hostent’ has no member named ‘h_addr’

make[1]: *** [proxy.o] Error 1

make: *** [lib] Error 2

./aim.h:543: error: expected declaration specifiers or ‘...’ before ‘u_short’

./aim.h:543: error: expected declaration specifiers or ‘...’ before ‘u_short’

./aim.h:543: error: expected declaration specifiers or ‘...’ before ‘u_short’

./aim.h:802: error: expected ‘)’ before ‘*’ token

./aim_internal.h:93: error: expected declaration specifiers or ‘...’ before ‘u_short’

./aim_internal.h:93: error: expected declaration specifiers or ‘...’ before ‘u_short’

admin.c:39: error: too many arguments to function ‘aim_callhandler’

admin.c:58: error: too many arguments to function ‘aim_callhandler’

make[2]: *** [admin.o] Error 1

make[1]: *** [oscar] Error 2

make: *** [protocols] Error 2

 * ERROR: net-im/bitlbee-1.2.3-r1 failed:
```

Ci sono diversi errori durante la compilazione, cosa potrei fare?  :Sad: 

Grazie a tutti in anticipo.

UPDATE: Ho aggiunto le flags "-oscar -jabber -yahoo", protocolli che a me non servono, ed ora gli errori rimasti son questi [In realtà è uno solo]:

```
proxy.c:72: error: ‘struct hostent’ has no member named ‘h_addr’

make[1]: *** [proxy.o] Error 1

make: *** [lib] Error 2

 * ERROR: net-im/bitlbee-1.2.3-r1 failed:
```

In pratica ho visto che alla riga 72 di proxy.c [dei sorgenti di Bitlbee] viene richiamato un elemento "h_addr" di una struct "hostent" definita nella libreria del C. È come se nalla mia libreria non ci sia questo puntatore nella struct hostent, magari ho qualche problema nelle librerie del C.

Come potrei risolvere?Last edited by Andrey_ on Sun Mar 07, 2010 11:45 pm; edited 2 times in total

----------

## ago

a prescindere dal problema potrei dire che ti manca la cflag -fomit-frame-pointer  :Smile: 

Probabilmente l'hai dimenticata..ma su x86 è molto importante specificarla..

----------

## Andrey_

Abbiamo postato quasi insieme, nota la mia ultima modifica.

Quella cflag a cosa serve? Dalla spiegazione in inglese non son riuscito a capirlo :/

----------

## ago

shhhhhhhhhhhhh non farti sentire da scen  :Very Happy:   :Very Happy: 

ci sono le traduzioni

----------

## Andrey_

Io intendevo quella ufficiale: http://gcc.gnu.org/onlinedocs/gcc-3.4.6/gcc/Optimize-Options.html

Comunque grazie.

----------

## ago

Vogliate perdonare voi tutti l'OT

curiosità..non ho trovato info sulla cflags -std=c99

mi daresti qualche info?

----------

## Andrey_

È per la compilazione di sorgenti che seguono gli standard introdotti dal C99: http://en.wikipedia.org/wiki/C99

Anche se messa lì non mi funziona, non so perchè. Ogni volta devo metterla esplicitamente quando mi serve.  :Sad: 

----------

## Andrey_

Ho risolto, avevo il kernel e i linux-headers di versioni differenti, ora sto mettendo un po' di ordine  :Razz: 

Grazie lo stesso.

----------

## Andrey_

Ah, dimenticavo, la cflag che dicevi tu è già implicitamente attivata, con -O2.  :Smile: 

PS: Taggo come RISOLTO.

----------

## ago

prima che arrivi kernel78 ti ricordo che è meglio editare il messaggio anzicché postarne diversi consecutivi...btw dalla pagina che ti ho linkato:

 *Guida all'Ottimizzazione della Compilazione wrote:*   

> E' attivata a tutti i livelli di -O (eccetto -O0) su architetture dove fare così non interferisce con il debug (come su x86-64), ma si può aver bisogno di attivarla aggiungendola alle proprie flag. Benchè il manuale di GNU gcc non specifichi tutte le architetture per le quali è attivato utilizzando -O, si avrà bisogno di attivarlo esplicitamente su x86.

 

----------

