X-Recipient: archive-cygwin@delorie.com
X-SWARE-Spam-Status: No, hits=-1.9 required=5.0	tests=AWL,BAYES_00,FREEMAIL_FROM,T_RP_MATCHES_RCVD
X-Spam-Check-By: sourceware.org
Message-ID: <4C7304CB.2020001@alice.it>
Date: Tue, 24 Aug 2010 01:31:23 +0200
From: Angelo Graziosi <angelo.graziosi@alice.it>
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; it; rv:1.9.2.8) Gecko/20100802 Thunderbird/3.1.2
MIME-Version: 1.0
To: Cygwin <cygwin@cygwin.com>
CC: Emacs <emacs-devel@gnu.org>
Subject: Building Emacs-trunk with gcc >= 4.5.1 and libelf installed
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Mailing-List: contact cygwin-help@cygwin.com; run by ezmlm
List-Id: <cygwin.cygwin.com>
List-Subscribe: <mailto:cygwin-subscribe@cygwin.com>
List-Archive: <http://sourceware.org/ml/cygwin/>
List-Post: <mailto:cygwin@cygwin.com>
List-Help: <mailto:cygwin-help@cygwin.com>, <http://sourceware.org/ml/#faqs>
Sender: cygwin-owner@cygwin.com
Mail-Followup-To: cygwin@cygwin.com
Delivered-To: mailing list cygwin@cygwin.com

Trying to build Emacs-trunk on Cygwin with GCC >= 4.5.1, I have found a 
problem if also the package 'libelf0' is installed.

The build fails in this way:

=====================================
./configure
[...]
checking for elf_begin in -lelf... yes
[...]
make
[...]
gcc-4.6...
In file included from /usr/include/X11/Xos.h:146:0,
                  from /tmp/emacs/src/xfaces.c:277:
/usr/include/X11/Xarch.h:43:30: fatal error: sys/byteorder.h: No such
file or directory
compilation terminated.
make[2]: *** [xfaces.o] Error 1
make[2]: *** Waiting for unfinished jobs....
make[2]: Leaving directory '/tmp/emacs/Work/src'
make[1]: *** [src] Error 2
make[1]: Leaving directory '/tmp/emacs/Work'
make: *** [bootstrap] Error 2
=====================================

The issue is fixed, simply, if I uninstall 'libelf0'. Indeed...

If 'libelf0' is installed, we have from 'configure',

--------
checking for elf_begin in -lelf... yes
--------

and the following test in 'configure' script is true:

--------
if test $ac_have_func = no && test "$ac_cv_lib_elf_elf_begin" = yes; then
   ac_have_func=yes

$as_echo "#define SVR4 1" >>confdefs.h

fi
--------

i.e. SVR4 is _defined_. But... 'src/xfaces.c' includes indirectly via 
'/usr/include/X11/Xos.h' the header '/usr/include/X11/Xarch.h', which has:

--------
[...]
#  if defined(SVR4) || defined(__SVR4)
#   include <sys/byteorder.h>
#  elif
[...]
--------

i.e. finding SVR4 defined, it searches for 'byteorder.h' in 
'/usr/include/sys' and not in '/usr/include/asm', where it lives (*as on 
GNU/Linux*[1]), and this leads to the above failure.

What does the Cygwin 'libelf0' maintainer think about these facts?

Thanks,
Angelo.

---
[1] Here Cygwin isn't different frome GNU/Linux Kubuntu 10.04. :-)



--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple

