# Error al compilar Libdrm-2.4.20-r1 [SOLUCIONADO]

## Pablo S. Barrera

Buenas

Estoy actualizando todo el sistema con emerge -uND world, resulta que venia todo bien hasta que intento compilar el paquete en cuestion. Antes de recompilar cambie la CFLAGS, ahora estan en -march=native y antes estaba en -mtune=k8

El error:

```
/bin/sh ../libtool --tag=CC   --mode=link x86_64-pc-linux-gnu-gcc -Wall -Wextra -Wsign-compare -Werror-implicit-function-declaration -Wpointer-arith -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wnested-externs -Wpacked -Wswitch-enum -Wmissing-format-attribute -Wstrict-aliasing=2 -Winit-self -Wunsafe-loop-optimizations -Wdeclaration-after-statement -Wold-style-definition -Wno-missing-field-initializers -Wno-unused-parameter -Wno-attributes -Wno-long-long -Winline -I.. -I../radeon  -I../include/drm -O2 -march=native -pipe -version-number 1:0:0 -no-undefined -Wl,-O1 -Wl,--as-needed -o libdrm_radeon.la -rpath /usr/lib64 radeon_bo_gem.lo radeon_cs_gem.lo radeon_cs_space.lo radeon_bo.lo radeon_cs.lo ../libdrm.la                                                                                               

libtool: link: x86_64-pc-linux-gnu-gcc -shared  .libs/radeon_bo_gem.o .libs/radeon_cs_gem.o .libs/radeon_cs_space.o .libs/radeon_bo.o .libs/radeon_cs.o   -Wl,-rpath -Wl,/var/tmp/portage/x11-libs/libdrm-2.4.20-r1/work/libdrm-2.4.20/.libs -Wl,--as-needed ../.libs/libdrm.so -lrt  -march=native -Wl,-O1   -Wl,-soname -Wl,libdrm_radeon.so.1 -o .libs/libdrm_radeon.so.1.0.0                                                       

libtool: link: (cd ".libs" && rm -f "libdrm_radeon.so.1" && ln -s "libdrm_radeon.so.1.0.0" "libdrm_radeon.so.1")                             

libtool: link: (cd ".libs" && rm -f "libdrm_radeon.so" && ln -s "libdrm_radeon.so.1.0.0" "libdrm_radeon.so")                                 

libtool: link: ( cd ".libs" && rm -f "libdrm_radeon.la" && ln -s "../libdrm_radeon.la" "libdrm_radeon.la" )                                  

make[2]: se sale del directorio `/var/tmp/portage/x11-libs/libdrm-2.4.20-r1/work/libdrm-2.4.20/radeon'                                       

Making all in tests                                                                                                                          

make[2]: se ingresa al directorio `/var/tmp/portage/x11-libs/libdrm-2.4.20-r1/work/libdrm-2.4.20/tests'                                      

Making all in kmstest                                                                                                                        

make[3]: se ingresa al directorio `/var/tmp/portage/x11-libs/libdrm-2.4.20-r1/work/libdrm-2.4.20/tests/kmstest'                              

x86_64-pc-linux-gnu-gcc -DHAVE_CONFIG_H -I. -I../..    -I../../include/drm -I../../libkms/ -I../.. -O2 -march=native -pipe -MT main.o -MD -MP -MF .deps/main.Tpo -c -o main.o main.c                                                                                                      

mv -f .deps/main.Tpo .deps/main.Po                                                                                                           

/bin/sh ../../libtool --tag=CC   --mode=link x86_64-pc-linux-gnu-gcc -I../../include/drm -I../../libkms/ -I../.. -O2 -march=native -pipe  -Wl,-O1 -Wl,--as-needed -o kmstest main.o ../../libdrm.la ../../libkms/libkms.la                                                                

libtool: link: x86_64-pc-linux-gnu-gcc -I../../include/drm -I../../libkms/ -I../.. -O2 -march=native -pipe -Wl,-O1 -o .libs/kmstest main.o  -Wl,--as-needed ../../.libs/libdrm.so -lrt ../../libkms/.libs/libkms.so                                                                       

make[3]: se sale del directorio `/var/tmp/portage/x11-libs/libdrm-2.4.20-r1/work/libdrm-2.4.20/tests/kmstest'                                

Making all in modeprint                                                                                                                      

make[3]: se ingresa al directorio `/var/tmp/portage/x11-libs/libdrm-2.4.20-r1/work/libdrm-2.4.20/tests/modeprint'                            

x86_64-pc-linux-gnu-gcc -DHAVE_CONFIG_H -I. -I../..    -I../../include/drm -I../../intel/ -I../.. -O2 -march=native -pipe -MT modeprint.o -MD -MP -MF .deps/modeprint.Tpo -c -o modeprint.o modeprint.c                                                                                   

modeprint.c: En la función ‘printProperty’:                                                                                                  

modeprint.c:104: aviso: el formato ‘%llu’ espera el tipo ‘long long unsigned int’, pero el argumento 2 es de tipo ‘uint64_t’                 

modeprint.c:119: aviso: el formato ‘%llu’ espera el tipo ‘long long unsigned int’, pero el argumento 2 es de tipo ‘uint64_t’                 

modeprint.c:135: aviso: el formato ‘%lld’ espera el tipo ‘long long int’, pero el argumento 2 es de tipo ‘uint64_t’                          

mv -f .deps/modeprint.Tpo .deps/modeprint.Po                                                                                                 

/bin/sh ../../libtool --tag=CC   --mode=link x86_64-pc-linux-gnu-gcc -I../../include/drm -I../../intel/ -I../.. -O2 -march=native -pipe  -Wl,-O1 -Wl,--as-needed -o modeprint modeprint.o ../../libdrm.la ../../intel/libdrm_intel.la                                                     

libtool: link: x86_64-pc-linux-gnu-gcc -I../../include/drm -I../../intel/ -I../.. -O2 -march=native -pipe -Wl,-O1 -o .libs/modeprint modeprint.o  -Wl,--as-needed ../../.libs/libdrm.so ../../intel/.libs/libdrm_intel.so /var/tmp/portage/x11-libs/libdrm-2.4.20-r1/work/libdrm-2.4.20/.libs/libdrm.so -lrt                                                                                                                           

make[3]: se sale del directorio `/var/tmp/portage/x11-libs/libdrm-2.4.20-r1/work/libdrm-2.4.20/tests/modeprint'                              

Making all in modetest                                                                                                                       

make[3]: se ingresa al directorio `/var/tmp/portage/x11-libs/libdrm-2.4.20-r1/work/libdrm-2.4.20/tests/modetest'                             

x86_64-pc-linux-gnu-gcc -DHAVE_CONFIG_H -I. -I../..    -I../../include/drm -I../../intel/ -I../..  -O2 -march=native -pipe -MT modetest.o -MD -MP -MF .deps/modetest.Tpo -c -o modetest.o modetest.c                                                                                      

modetest.c:59:19: error: cairo.h: No existe el fichero o el directorio                                                                       

modetest.c: En la función ‘create_test_buffer’:                                                                                              

modetest.c:365: error: ‘cairo_surface_t’ no se declaró aquí (primer uso en esta función)                                                     

modetest.c:365: error: (Cada identificador no declarado solamente se reporta una vez                                                         

modetest.c:365: error: para cada funcion en la que aparece.)                                                                                 

modetest.c:365: error: ‘surface’ no se declaró aquí (primer uso en esta función)                                                             

modetest.c:366: error: ‘cairo_t’ no se declaró aquí (primer uso en esta función)                                                             

modetest.c:366: error: ‘cr’ no se declaró aquí (primer uso en esta función)                                                                  

modetest.c:370: error: ‘CAIRO_FORMAT_ARGB32’ no se declaró aquí (primer uso en esta función)                                                 

modetest.c:373: aviso: conversión a puntero desde un entero de tamaño diferente                                                              

modetest.c:382: error: ‘CAIRO_LINE_CAP_SQUARE’ no se declaró aquí (primer uso en esta función)                                               

modetest.c:385: error: ‘CAIRO_OPERATOR_OVER’ no se declaró aquí (primer uso en esta función)                                                 

make[3]: *** [modetest.o] Error 1                                                                                                            

make[3]: se sale del directorio `/var/tmp/portage/x11-libs/libdrm-2.4.20-r1/work/libdrm-2.4.20/tests/modetest'                               

make[2]: *** [all-recursive] Error 1                                                                                                         

make[2]: se sale del directorio `/var/tmp/portage/x11-libs/libdrm-2.4.20-r1/work/libdrm-2.4.20/tests'                                        

make[1]: *** [all-recursive] Error 1                                                                                                         

make[1]: se sale del directorio `/var/tmp/portage/x11-libs/libdrm-2.4.20-r1/work/libdrm-2.4.20'                                              

make: *** [all] Error 2                                                                                                                      

 * ERROR: x11-libs/libdrm-2.4.20-r1 failed:                                                                                                  

 *   emake failed                                                                                                                            

 *                                                                                                                                           

 * Call stack:                                                                                                                               

 *     ebuild.sh, line   54:  Called src_compile                                                                                             

 *   environment, line 3336:  Called x-modular_src_compile                                                                                   

 *   environment, line 4188:  Called x-modular_src_make                                                                                      

 *   environment, line 4226:  Called die                                                                                                     

 * The specific snippet of code:                                                                                                             

 *       emake || die "emake failed"                                                                                                         

 *                                                                                                                                           

 * If you need support, post the output of 'emerge --info =x11-libs/libdrm-2.4.20-r1',                                                       

 * the complete build log and the output of 'emerge -pqv =x11-libs/libdrm-2.4.20-r1'.                                                        

 * The complete build log is located at '/var/tmp/portage/x11-libs/libdrm-2.4.20-r1/temp/build.log'.                                         

 * The ebuild environment file is located at '/var/tmp/portage/x11-libs/libdrm-2.4.20-r1/temp/environment'.                                  

 * S: '/var/tmp/portage/x11-libs/libdrm-2.4.20-r1/work/libdrm-2.4.20'                                                                        

 * Messages for package x11-libs/libdrm-2.4.20-r1:

 * ERROR: x11-libs/libdrm-2.4.20-r1 failed:

 *   emake failed                          

 *                                         

 * Call stack:                             

 *     ebuild.sh, line   54:  Called src_compile

 *   environment, line 3336:  Called x-modular_src_compile

 *   environment, line 4188:  Called x-modular_src_make   

 *   environment, line 4226:  Called die                  

 * The specific snippet of code:                          

 *       emake || die "emake failed"                      

 *                                                        

 * If you need support, post the output of 'emerge --info =x11-libs/libdrm-2.4.20-r1',

 * the complete build log and the output of 'emerge -pqv =x11-libs/libdrm-2.4.20-r1'. 

 * The complete build log is located at '/var/tmp/portage/x11-libs/libdrm-2.4.20-r1/temp/build.log'.

 * The ebuild environment file is located at '/var/tmp/portage/x11-libs/libdrm-2.4.20-r1/temp/environment'.

 * S: '/var/tmp/portage/x11-libs/libdrm-2.4.20-r1/work/libdrm-2.4.20'   
```

El emerge --info =x11-libs/libdrm-2.4.20-r1 

```
Portage 2.1.8.3 (default/linux/amd64/10.0/desktop/kde, gcc-4.3.4, glibc-2.11.2-r0, 2.6.32-gentoo-r7 x86_64)

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

                        System Settings                                                                    

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

System uname: Linux-2.6.32-gentoo-r7-x86_64-AMD_Athlon-tm-_64_Processor_3800+-with-gentoo-1.12.13          

Timestamp of tree: Sat, 14 Aug 2010 02:15:02 +0000                                                         

app-shells/bash:     4.0_p37                                                                               

dev-java/java-config: 2.1.10                                                                               

dev-lang/python:     2.6.5-r2, 3.1.2-r3                                                                    

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.65                                                                            

sys-devel/automake:  1.8.5-r4, 1.9.6-r3, 1.10.3, 1.11.1                                                    

sys-devel/binutils:  2.20.1-r1                                                                             

sys-devel/gcc:       4.3.4, 4.4.3-r2                                                                       

sys-devel/gcc-config: 1.4.1                                                                                

sys-devel/libtool:   2.2.6b                                                                                

virtual/os-headers:  2.6.30-r1

ACCEPT_KEYWORDS="amd64"

ACCEPT_LICENSE="*"

CBUILD="x86_64-pc-linux-gnu"

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

CHOST="x86_64-pc-linux-gnu"

CONFIG_PROTECT="/etc /usr/share/X11/xkb /usr/share/config /var/lib/hsqldb"

CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/env.d/java/ /etc/fonts/fonts.conf /etc/gconf /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo"

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

DISTDIR="/usr/portage/distfiles"

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

GENTOO_MIRRORS="ftp://de-mirror.org/distro/gentoo/"

LANG="es_AR.UTF-8"

LDFLAGS="-Wl,-O1 -Wl,--as-needed"

LINGUAS="es es_LA"

MAKEOPTS="-j2"

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.de.gentoo.org/gentoo-portage"

USE="3dnow 64bit X a52 aac acl acpi alsa amd64 berkdb bluetooth branding bzip2 cairo cdda cdr cli consolekit cracklib crypt cups custom-optimization cxx dbus dri dts dvd dvdr embedded emboss emovix encode exif extras fam ffmpeg firefox flac fortran gdbm gif gpm hal iconv ipv6 java jpeg kde lame lastfm lcms ldap libnotify lzma mad mikmod mmx mng modules mp3 mp3tunes mp4 mpeg mudflap multilib ncurses nls nptl nptlonly nvidia ogg opengl openmp pam pango pcre pdf perl png ppds pppd python qt3support qt4 readline reflection sdl session spell spl sse sse2 ssl startup-notification svg symlink sysfs tcpd tiff truetype unicode usb vcd virtualbox vorbis wma x264 xcb xml xorg xulrunner xv xvid zip zlib" ALSA_CARDS="ALC660 intel vt82xx via82xx" 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 cgi cgid 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" LINGUAS="es es_LA" RUBY_TARGETS="ruby18" USERLAND="GNU" VIDEO_CARDS="nvidia" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq steal rawnat logmark ipmark dhcpmac delude chaos account"

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

```

Espero puedan ayudarme.

Gracias de antemano.Last edited by Pablo S. Barrera on Sat Aug 14, 2010 5:52 pm; edited 1 time in total

----------

## Coghan

Actualiza cairo a la versión 1.8.10 antes de libdrm con 

```
emerge -av1 x11-libs/cairo
```

En este bug lo explican, cairo-1.8.10 debería estar como dependencia de libdrm-2.4.20-r1

----------

## Pablo S. Barrera

Gracias Coghan!!

Funciono perfectamente con tus indicaciones.

----------

