A jó tervgazdálkodás alapja a jó tervgazdálkodás

Mint tudjuk. A gcc fordításának alapja pedig a gcc. Először is a gcc kitermel magából egy proto-gcc-t, és aztán azzal az igazit. Esetünkben ilyesmi hibával akadunk meg:


../../.././libgcc/config/i386/sfp-exceptions.c:52:7: error: 'asm' undeclared (first use in this function)
       asm volatile ("%vdivss\t{%0, %d0|%d0, %0}" : "+x" (f));

Ez olyasmit próbál jelenteni, hogy a gcc elfelejtett szólni a gcc-nek, hogy valamilyen asm-ot is támogató -std-opció kellene... Nyilván az én hibám;)

Naszóval, ha a CFLAGS-ot, CXXFLAGS-ot LDFLAGS-ot üresre állítom, akkor rendben lefordul a gcc-4.9.4; lesz benne -m32/-m64, az utóbbi a default. Na most jön a nagy kérdés: rá merem-e küldeni az AIX-ra?

Hozzászólások

Az új gcc lőtt nekem egy ilyet:


program.c:1799:36: error: 'j' may be used uninitialized in this function [-Werror=maybe-uninitialized]
     for (int j=0; j < bvval.BVQDB; ++j ){

Na ezt most nem látom pontosan, miért.

Szerk: van a ciklusban egy continue. Ha az nincs, warning sincs.

Szerk: Nem -- ezt benéztem, tényleg fogott egy csúf hibát. Na pont az ilyenek miatt szeretnék minél több warningot kapni. A clang például remek dolgokat tud... csak ne lenne olyan szűkös a támogatott kódolások listája.

Na egy ilyet tákoltam, szigorúan saját használatra:


#!/usr/local/bin/bash

set -e

ArgList=''
Prev=''
Last=''

for Last; do 
    test -n "$Prev" && ArgList="$ArgList \"$Prev\""
    Prev=$(sed 's/"/\\"/g' <<<"$Last")
done

{ echo "#line 1 \"$Last\"";
  iconv -f ISO-8859-2 -t UTF-8 <"$Last"; } >"torold_$Last"

eval "clang $ArgList \"torold_$Last\""

Ez persze hallgatólagosan felteszi, hogy csak egy forrásprogram van (ami gyakran igaz), és az az utolsó pozíción van (ez is gyakran igaz). Namost amikor nincs gyakran, akkor van a baj...


libtool: compile: /home/projects/bin/clang_i -o obj/lat_l2u.o -m32 -std=c99 -O3 -Werror -g -W -Wall -Wextra\
-Werror -pedantic -Wmissing-prototypes -Wno-strict-aliasing -Wno-long-long -Wno-unused-parameter -Wno-unused-result \
-D__UNIX__ -D__unix__ -D_GNU_SOURCE -D_XOPEN_SOURCE=500 -D_ALL_SOURCE -D_LARGEFILE_SOURCE\
-D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 \
-D_LARGE_FILES -D_THREAD_SAFE -I. \
-L/home/projects/lib64 lat_l2u.c -c

Szerk: nem hülyeség miatt került a végére... a gmp nevű komponens ilyesmit tákol-bákol:


libtool --mode=compile --tag=CC ../mpn/m4-ccas --m4="m4" gcc ...