# Cos'Ã¨ questa USE="d" nelle gcc?

## lucapost

Ho da poco fatto un sync e mi trovo le gcc da ricompilare con una nuova USE="d". La cosa mi puzza un pÃ²...questa Ã¨ la situazione:

```
jarod ~ # emerge -pv gcc

These are the packages that would be merged, in order:

Calculating dependencies... done!

[ebuild   R   ] sys-devel/gcc-4.1.2  USE="fortran gtk nls (-altivec) -bootstrap -build -d% -doc -gcj (-hardened) -ip28 -ip32r10k -mudflap (-multilib) -multislot (-n32) (-n64) -nocxx -objc -objc++ -objc-gc -test -vanilla" 0 kB 

Total: 1 package (1 reinstall), Size of downloads: 0 kB
```

Ma con equery la USE="d" sembra non esistere:

```
jarod ~ # equery uses gcc

[ Searching for packages matching gcc... ]

[ Colour Code : set unset ]

[ Legend : Left column  (U) - USE flags from make.conf              ]

[        : Right column (I) - USE flags packages was installed with ]

[ Found these USE variables for sys-devel/gcc-4.1.2 ]

 U I

 - - altivec   : Adds support for optimizations for G4 and G5/ppc970 processors

 - - bootstrap : !!internal use only!! DO NOT SET THIS FLAG YOURSELF!, used during original system bootstrapping [make stage2]

 - - build     : !!internal use only!! DO NOT SET THIS FLAG YOURSELF!, used for creating build images and the first half of bootstrapping [make stage1]

 - - doc       : Adds extra documentation (API, Javadoc, etc)

 + + fortran   : Adds support for fortran (formally f77)

 - - gcj       : Enable building with gcj (The GNU Compiler for the Javatm Programming Language)

 + + gtk       : Adds support for x11-libs/gtk+ (The GIMP Toolkit)

 - - hardened  : activate default security enhancements for toolchain (gcc, glibc, binutils)

 - - ip28      : Enable building a compiler capable of building a kernel for SGI Indigo2 Impact R10000 (IP28)

 - - ip32r10k  : Enable building a compiler capable of building an experimental kernel for SGI O2 w/ R1x000 CPUs (IP32)

 - - mudflap   : Add support for mudflap, a pointer use checking library

 - - multilib  : On 64bit systems, if you want to be able to compile 32bit and 64bit binaries

 - - multislot : Allow for SLOTs to include minor version (3.3.4 instead of just 3.3)

 - - n32       : Enable n32 ABI support on mips

 - - n64       : Enable n64 ABI support on mips

 + + nls       : Adds Native Language Support (using gettext - GNU locale utilities)

 - - nocxx     : Disable support for C++ (DON'T USE THIS UNLESS YOU KNOW WHAT YOU'RE DOING)

 - - objc      : Build support for the Objective C code language

 - - objc++    : Build support for the Objective C++ language

 - - objc-gc   : Build support for the Objective C code language Garbage Collector

 - - test      : Workaround to pull in packages needed to run with FEATURES=maketest / FEATURES=test

 - - vanilla   : Do not add extra patches which change default behaviour; DO NOT USE THIS ON A GLOBAL SCALE as the severity of the meaning changes drastically
```

ecco qualche info:

```
jarod ~ # emerge --info

Portage 2.1.2.2 (default-linux/amd64/2006.1, gcc-4.1.2, glibc-2.5-r0, 2.6.20-gentoo-r2 x86_64)

=================================================================

System uname: 2.6.20-gentoo-r2 x86_64 AMD Turion(tm) 64 X2 Mobile Technology TL-50

Gentoo Base System release 1.12.9

Timestamp of tree: Sun, 11 Mar 2007 12:00:07 +0000

dev-java/java-config: 1.3.7, 2.0.31-r4

dev-lang/python:     2.4.4

dev-python/pycrypto: 2.0.1-r5

sys-apps/sandbox:    1.2.18.1

sys-devel/autoconf:  2.13, 2.61

sys-devel/automake:  1.4_p6, 1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.6-r2, 1.10

sys-devel/binutils:  2.17

sys-devel/gcc-config: 1.3.15

sys-devel/libtool:   1.5.23b

virtual/os-headers:  2.6.20-r1

ACCEPT_KEYWORDS="amd64 ~amd64"

AUTOCLEAN="yes"

CBUILD="x86_64-pc-linux-gnu"

CFLAGS="-march=k8 -O2 -pipe"

CHOST="x86_64-pc-linux-gnu"

CONFIG_PROTECT="/etc /usr/share/X11/xkb"

CONFIG_PROTECT_MASK="/etc/env.d /etc/env.d/java/ /etc/gconf /etc/java-config/vms/ /etc/revdep-rebuild /etc/terminfo /etc/texmf/web2c"

CXXFLAGS="-march=k8 -O2 -pipe"

DISTDIR="/usr/portage/distfiles"

FEATURES="autoconfig distlocks metadata-transfer parallel-fetch sandbox sfperms strict"

GENTOO_MIRRORS="http://distfiles.gentoo.org http://distro.ibiblio.org/pub/linux/distributions/gentoo"

LC_ALL="en_GB.UTF-8"

LINGUAS="en"

MAKEOPTS="-j3"

PKGDIR="/usr/portage/packages"

PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --delete-after --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages --filter=H_**/files/digest-*"

PORTAGE_TMPDIR="/var/tmp"

PORTDIR="/usr/portage"

SYNC="rsync://rsync.gentoo.org/gentoo-portage"

USE="X acpi alsa amd64 berkdb bitmap-fonts cli cracklib crypt dri fortran gdbm gpm iconv isdnlog libg++ midi motif mp3 ncurses nls nptl nptlonly opengl pam pcre perl ppds pppd python readline reflection session spl ssl tcpd truetype truetype-fonts type1-fonts unicode xorg zlib" ALSA_CARDS="hda-intel" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mulaw multi null plug rate route share shm softvol" ELIBC="glibc" INPUT_DEVICES="mouse keyboard evdev synaptics" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LINGUAS="en" USERLAND="GNU" VIDEO_CARDS="nvidia"

Unset:  CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LANG, LDFLAGS, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS, PORTDIR_OVERLAY
```

Ho fatto bene a non aver avuto fretta di ricompilare le gcc?

----------

## Luca89

Credo che non si tratti di un errore, ecco cosa dice il ChangeLog:

 *ChangeLog gcc wrote:*   

>   09 Mar 2007; Mike Frysinger <vapier@gentoo.org> gcc-3.4.6-r2.ebuild,
> 
>   gcc-4.1.2.ebuild:
> 
>   Add support for version 0.23 of the D language addon.
> ...

 

Questo invece lo riporta "euse -i d":

```
local use flags (searching: d)

************************************************************

[-    ] d (sys-devel/gcc):

Enable support for the D programming language

```

Se ti serve il linguaggio D, molto probabilmente no, tienila disabilitata, altrimenti attivala.

----------

## gutter

Per conferma basta leggere il commento in /usr/portage/eclass/toolchain.eclass che viene ereditata da GCC:

```

                if use d ; then

                        ebegin "Adding support for the D language"

                        ./gcc/d/setup-gcc.sh >& "${T}"/dgcc.log

                        if ! eend $? ; then

                                eerror "The D gcc package failed to apply"

                                eerror "Please include this log file when posting a bug report:"

                                eerror "  ${T}/dgcc.log"

                                die "failed to include the D language"

```

----------

## lucapost

Succo del discorso, che voglia o non voglia il supporto a questo linguaggio D, le gcc me le devo ricompilare di nuovo:

```
jarod ~ # USE="d" emerge -pv gcc

These are the packages that would be merged, in order:

Calculating dependencies... done!

[ebuild   R   ] sys-devel/gcc-4.1.2  USE="d%* fortran gtk nls (-altivec) -bootstrap -build -doc -gcj (-hardened) -ip28 -ip32r10k -mudflap (-multilib) -multislot (-n32) (-n64) -nocxx -objc -objc++ -objc-gc -test -vanilla" 932 kB 

Total: 1 package (1 reinstall), Size of downloads: 932 kB
```

```
jarod ~ # USE="-d" emerge -pv gcc

These are the packages that would be merged, in order:

Calculating dependencies... done!

[ebuild   R   ] sys-devel/gcc-4.1.2  USE="fortran gtk nls (-altivec) -bootstrap -build -d% -doc -gcj (-hardened) -ip28 -ip32r10k -mudflap (-multilib) -multislot (-n32) (-n64) -nocxx -objc -objc++ -objc-gc -test -vanilla" 0 kB 

Total: 1 package (1 reinstall), Size of downloads: 0 kB
```

Uff...

----------

## lavish

 *lucapost wrote:*   

> Succo del discorso, che voglia o non voglia il supporto a qesto linguaggio D, le gcc me le devo ricompilare di nuovo

 

Beh, nessuno ti obbliga a usare --newuse  :Wink: 

----------

## lucapost

 *lavish wrote:*   

> 
> 
> Beh, nessuno ti obbliga a usare --newuse 

 

Per come la vedo io quell'opzione dovrebbe partire automaticamente ad ogni emerge, senza bisogno di aggiungerla a manina  :Wink: 

ps: ora vado a cercare quando esce una nuova versione delle gcc, non si sa mai che oggi mi metto a compilarle e tra un paio di giorni dopo un sync...

----------

## Luca89

 *lucapost wrote:*   

> ps: ora vado a cercare quando esce una nuova versione delle gcc, non si sa mai che oggi mi metto a compilarle e tra un paio di giorni dopo un sync...

 

Beh, se scegli di utilizzare tutto il sistema in testing devi aspettarti upgrade frequenti, è normale.

----------

## djinnZ

@Luca89: Guarda che il "D" è in stabile sul 3.4.6 (accidenti doppio e triplo accidenti!  :Evil or Very Mad:  ) quindi non ti capitano solo in ~ certe scocciature.

@lucapost: lo so che è un tantino brutale e bestiale (nel senso di azione ferina e disdicevole... da cavernicolo) farlo... ma aggiungere "d" in /var/db/pkg/sys-devel/gcc-vattelappesca/IUSE?

Tanto non mi pare che ci siano enormi differenze tra il vecchio ed il nuovo ebuild (ho la hardened quindi non uso il gcc-4.x)

----------

## lavish

 *djinnZ wrote:*   

> @Luca89: Guarda che il "D" è in stabile sul 3.4.6 

 

Luca89 si riferiva al fatto che su ~ ci sono upgrade frequenti, non che la USE "d" sia stata aggiunta solo in gcc-4.1.2.

Rileggiti bene gli ultimi post

----------

## djinnZ

uhm... ho rieditato il post, il commento era acido ma nei confronti dell'aggiunta del "D" (però scritto così pareva più un "che cavolo stai dicendo?!") anche sulle stabili, quindi non capita solo a chi usa instabile.

Qualche volta mi rendo conto che dovrei tornare a squola ad impararmi più meglio l'italiano   :Wink: 

----------

