From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 2653 invoked by alias); 21 Oct 2002 06:11:07 -0000 Mailing-List: contact gdb-patches-help@sources.redhat.com; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sources.redhat.com Received: (qmail 2601 invoked from network); 21 Oct 2002 06:11:04 -0000 Received: from unknown (HELO takamaka.act-europe.fr) (142.179.108.108) by sources.redhat.com with SMTP; 21 Oct 2002 06:11:04 -0000 Received: by takamaka.act-europe.fr (Postfix, from userid 507) id DC447D2CC7; Sun, 20 Oct 2002 23:11:51 -0700 (PDT) Date: Sun, 20 Oct 2002 23:11:00 -0000 From: Joel Brobecker To: gdb-patches@sources.redhat.com Subject: [RFC] want to #undef HAVE_SBRK and HAVE_POLL on Interix Message-ID: <20021021061151.GY7331@gnat.com> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="UlVJffcvxoiEqYs2" Content-Disposition: inline User-Agent: Mutt/1.4i X-SW-Source: 2002-10/txt/msg00329.txt.bz2 --UlVJffcvxoiEqYs2 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-length: 1744 Hello, This is something I did sometime ago, and wanted to discuss with you before proposing a change more formally. Here goes: On Interix, the sbrk() function exists, but is not sufficiently implemented to be used in GDB. Because it exists, AC_CHECK_FUNCS (sbrk) finds it, and therefore configure adds the associated "#define HAVE_SBRK" in config.h. If you look at xm-interix.h in the files I recently submitted, you will see that there is a "#undef HAVE_SBRK" to counter the result of AC_CHECK_FUNCS. I would like to get rid of this #undef. To do that, the only way I found is to either: 1. let configure test for sbrk() on Interix, but then override the test result afterward by undefining (in the configure sense) HAVE_SBRK. Something like: AC_CHECK_FUNCS (....) # this line is unchanged case "${host}" in *-*-interix* ) undefine (HAVE_BRK) ;; * ) ;; esac 2. do not do the AC_CHECK_FUNCS test for sbrk() on Interix. This way, HAVE_SBRK will never be defined, and we don't need the undef in xm-interix.h anymore. I did not find a way in the documentation to undefine a variable that was previously defined. So I could not implement 1. I also thought that a user might find it confusing to see the output of configure show Checking for sbrk... yes and then no see HAVE_SBRK defined in config.h... So I implemented 2. A patch is attached (it is only the configure.in part, the rest will follow if the approach to the problem is approved). I also did the same for the poll() function, which should not be used on Interix as well. Is it the best approach to the problem? Would such a patch be accepted for inclusion? Thanks, -- Joel --UlVJffcvxoiEqYs2 Content-Type: text/plain; charset=us-ascii Content-Description: configure.in.diff Content-Disposition: attachment; filename="configure.in.diff2" Content-length: 1607 Index: configure.in =================================================================== RCS file: /cvs/src/src/gdb/configure.in,v retrieving revision 1.91 diff -c -3 -p -r1.91 configure.in *** configure.in 20 Sep 2002 00:24:01 -0000 1.91 --- configure.in 21 Oct 2002 05:52:28 -0000 *************** AC_HEADER_STAT *** 134,141 **** AC_C_CONST AC_C_INLINE ! AC_CHECK_FUNCS(bcopy btowc bzero canonicalize_file_name isascii poll \ ! realpath sbrk setpgid setpgrp sigaction sigprocmask sigsetmask ) AC_FUNC_ALLOCA AC_FUNC_VFORK dnl AC_FUNC_SETPGRP does not work when cross compiling --- 134,161 ---- AC_C_CONST AC_C_INLINE ! AC_CHECK_FUNCS(bcopy btowc bzero canonicalize_file_name isascii \ ! realpath setpgid setpgrp sigaction sigprocmask sigsetmask ) ! ! # Certain systems implement broken or incomplete versions of some ! # functions, which cause AC_CHECK_FUNCS to define the associated HAVE_* ! # macro. But we actually do not want to this macro to be defined on ! # these systems where we know it is broken. So we simply skip the test ! # for these functions and pretend that it does not exist. ! case "${host}" in ! *-*-interix*) ! # On Interix, there is only a minimal sbrk(). This function does not ! # provide the functionality that is needed in the case of GDB (there ! # is no relationship at all with environ). ! ! # The poll() function is only partially implemented so far... ! ;; ! *) ! AC_CHECK_FUNCS(sbrk) ! AC_CHECK_FUNCS(poll) ! ;; ! esac ! AC_FUNC_ALLOCA AC_FUNC_VFORK dnl AC_FUNC_SETPGRP does not work when cross compiling --UlVJffcvxoiEqYs2--