From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 20507 invoked by alias); 25 Sep 2012 18:18:57 -0000 Received: (qmail 20499 invoked by uid 22791); 25 Sep 2012 18:18:56 -0000 X-SWARE-Spam-Status: No, hits=-1.8 required=5.0 tests=AWL,BAYES_00,DKIM_SIGNED,TW_JL,T_DKIM_INVALID X-Spam-Check-By: sourceware.org Received: from mail02.prevas.se (HELO mail02.prevas.se) (62.95.78.10) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Tue, 25 Sep 2012 18:18:42 +0000 Received: from vmprevas3.prevas.se (HELO smtp.prevas.se) ([172.16.8.103]) by ironport2.prevas.se with ESMTP/TLS/AES128-SHA; 25 Sep 2012 20:18:40 +0200 Received: from dev.prevas.dk (172.16.10.60) by smtp.prevas.se (172.16.8.105) with Microsoft SMTP Server (TLS) id 14.2.318.1; Tue, 25 Sep 2012 20:18:39 +0200 Received: from arh128 (0x55532124.adsl.cybercity.dk [85.83.33.36]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) (Authenticated sender: eha) by dev.prevas.dk (Postfix) with ESMTPSA id C04488091B; Tue, 25 Sep 2012 20:18:39 +0200 (CEST) Received: by arh128 (Postfix, from userid 1000) id 9583083F7B; Tue, 25 Sep 2012 20:18:38 +0200 (CEST) From: Esben Haabendal To: Mike Frysinger CC: , "Yann E. MORIN" Subject: Re: [PATCH] kernel/linux: change arch tuple to use -uclinux for uclinux toolchains References: <87wqziffpo.fsf@arh128.prevas.dk> <201209251841.42087.yann.morin.1998@free.fr> <201209251246.01318.vapier@gentoo.org> Date: Tue, 25 Sep 2012 18:18:00 -0000 In-Reply-To: <201209251246.01318.vapier@gentoo.org> (Mike Frysinger's message of "Tue, 25 Sep 2012 12:46:00 -0400") Message-ID: <87sja6kltt.fsf@arh128.prevas.dk> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/23.3 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" X-IsSubscribed: yes Mailing-List: contact crossgcc-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: crossgcc-owner@sourceware.org X-SW-Source: 2012-09/txt/msg00108.txt.bz2 Mike Frysinger writes: > On Tuesday 25 September 2012 12:41:42 Yann E. MORIN wrote: >> Basically, 'bfin-elf' is for bare-metal, 'bfin-uclinux' if for >> flat-binaries with no shared libs, and 'bfin-linux' for FDPIC-ELF that >> allows shared libs. > > correct, the current convention is that "-uclinux" is for FLAT > targets. Ok, but where does this convention come from. Or rather, who follows this convention? It does not generally seem to be the convention used in GCC, at least not for all archs. If linux-gnu is linux with glibc, linux-uclibc is uClinux/FDPIC-ELF with uClibc, and uclinux-uclibc is uClinux/FLAT with uClibc. What arch tuple should then be used for linux with uClibc? I don't see the benefit of not being able to tell it apart from uClinux/FDPIC-ELF with uClibc. If you take a look at gcc/config.gcc it has stuff like -------- m68k-*-uclinuxoldabi*) # Motorola m68k/ColdFire running uClinux # with uClibc, using the original # m68k-elf-based ABI default_m68k_cpu=68020 default_cf_cpu=5206 tm_file="${tm_file} m68k/m68k-none.h m68k/m68kelf.h dbxelf.h elfos.h m68k/uclinux-oldabi.h glibc-stdint.h" tm_defines="${tm_defines} MOTOROLA=1" tmake_file="m68k/t-floatlib m68k/t-uclinux" ;; m68k-*-uclinux*) # Motorola m68k/ColdFire running uClinux # with uClibc, using the new GNU/Linux-style # ABI. default_m68k_cpu=68020 default_cf_cpu=5206 tm_file="${tm_file} dbxelf.h elfos.h svr4.h linux.h glibc-stdint.h flat.h m68k/linux.h m68k/uclinux.h ./sysroot-suffix.h" tm_defines="${tm_defines} MOTOROLA=1 UCLIBC_DEFAULT=1" extra_options="${extra_options} linux.opt" tmake_file="m68k/t-floatlib m68k/t-uclinux m68k/t-mlibs" ;; m68k-*-linux*) # Motorola m68k's running GNU/Linux # with ELF format using glibc 2 # aka the GNU/Linux C library 6. default_m68k_cpu=68020 default_cf_cpu=5475 with_arch=${with_arch:-m68k} tm_file="${tm_file} dbxelf.h elfos.h svr4.h linux.h glibc-stdint.h m68k/linux.h ./sysroot-suffix.h" extra_options="${extra_options} m68k/ieee.opt" tm_defines="${tm_defines} MOTOROLA=1" tmake_file="${tmake_file} m68k/t-floatlib m68k/t-linux m68k/t-mlibs" # if not configured with --enable-sjlj-exceptions, bump the # libgcc version number if test x$sjlj != x1; then tmake_file="$tmake_file m68k/t-slibgcc-elf-ver" fi ;; -------- I guess that mean that at least for m68k, the convention you mention is not shared with GCC. When building an m68k cross gcc, using *-*-linux-* will filter out any target devices that does not have the FL_MMU flag set (in gcc/config/m68k/m68k-devices.def). When building with *-*-uclinux-*, only those devices without FL_MMU flag set, or with FL_UCLINUX flag set will be available. As such, the convention does not work for m68k. As for my current needs, this can be made conditional for m68k. That said, I don't think the convention is the most sane one, as it would be best to have "linux-uclibc" mean the same thing independent of the cpu prefix, and also in line with the principle of least surprise, it would make sense to use "uclinux-*" for uclinux archs :-) /Esben -- For unsubscribe information see http://sourceware.org/lists.html#faq