From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 17029 invoked by alias); 2 Feb 2005 07:13:08 -0000 Mailing-List: contact sid-help@sources.redhat.com; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: sid-owner@sources.redhat.com Received: (qmail 16759 invoked from network); 2 Feb 2005 07:12:51 -0000 Received: from unknown (HELO mx1.redhat.com) (66.187.233.31) by sourceware.org with SMTP; 2 Feb 2005 07:12:51 -0000 Received: from int-mx1.corp.redhat.com (int-mx1.corp.redhat.com [172.16.52.254]) by mx1.redhat.com (8.12.11/8.12.11) with ESMTP id j127Cpvp029494; Wed, 2 Feb 2005 02:12:51 -0500 Received: from zenia.home.redhat.com (sebastian-int.corp.redhat.com [172.16.52.221]) by int-mx1.corp.redhat.com (8.11.6/8.11.6) with ESMTP id j127CoO22547; Wed, 2 Feb 2005 02:12:51 -0500 To: sid@sources.redhat.com, cgen@sources.redhat.com Subject: sid cgen cpus broken by absence of pic libiberty From: Jim Blandy Date: Wed, 02 Feb 2005 07:13:00 -0000 Message-ID: User-Agent: Gnus/5.09 (Gnus v5.9.0) Emacs/21.3 MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-SW-Source: 2005-q1/txt/msg00009.txt.bz2 I think the SID build is broken for CGEN-based processors. The libcgencpu.la library, built in sid/component/cgen-cpu, depends on libiberty. There are some occasional uses of xmalloc in tracedis.cxx, but libcgencpu.la also uses files from libopcodes, which use the "safe-ctype.h" character classification functions. Fine. Unfortunately, libiberty no longer builds PIC versions of its .o files. It used to, but there was long and highly confusing discussion about how to fix things in December, which resulted in many large patches, all of which were eventually reverted. See the binutils mailing list. I can't find the discussion of why H.J. Lu reverted the hard work he'd done getting libiberty to use libtool, but it sure looked like a testing nightmare (AIX and an HP-UX x IA64 build were both brought up as problematic cases). And if there are no PIC libiberty objects, then libcgencpu.la certainly can't use libiberty. Since worthies much worthier than I have struggled with making libiberty produce PIC object files and failed, I'm inclined to work on making the opcodes stuff and sid no longer depend on libiberty. It's going to involve cringe-inducing patch hunks like this: *************** cgen_parse_keyword (CGEN_CPU_DESC cd ATT *** 216,222 **** /* Allow letters, digits, and any special characters. */ while (((p - start) < (int) sizeof (buf)) && *p ! && (ISALNUM (*p) || *p == '_' || strchr (keyword_table->nonalpha_chars, *p))) ++p; --- 216,224 ---- /* Allow letters, digits, and any special characters. */ while (((p - start) < (int) sizeof (buf)) && *p ! && (('a' <= *p && *p <= 'z') ! || ('A' <= *p && *p <= 'Z') ! || ('0' <= *p && *p <= '9') || *p == '_' || strchr (keyword_table->nonalpha_chars, *p))) ++p; Does that sound reasonable (well, reasonable with a clothespin on the nose) to folks?