Tentiamo di compilare la Toolchain 3.4.2 su Mac OS X

Come suggerito e concordato altrove ( Nuovi sviluppi IDE 1.8.x - #136 by gpb01 - Megatopic - Arduino Forum ) apriamo questo nuovo thread per vedere se, mettendo assieme le varie forze, riusciamo a compilare la Toolchain 3.4.2 per AVR su piattaforma MAC OS X.

Il thread, in realtà, è aperto a tutti e non solo ai possessori di Mac visto che, almeno in teoria, scaricando i sorgenti della Toolchain 3.4.2 AVR da QUI : http://distribute.atmel.no/tools/opensource/Atmel-AVR-Toolchain-3.4.2/avr/ ... DOVREBBE essere possibile la loro compilazione su qualunque piattaforma ... :roll_eyes:

Personalmente sto effettuando le prove su OS X 10.8.4 ... e, in contemporanea, Leo ha provato la compilazione su piattaforma Linux ... sempre con scarsi risultati ... =(

Comunque, riporto la mia configurazione che, ad oggi, mi ha almeno permesso SOLO di lanciare lo script fornito da Atmel senza che si arrestasse per mancanza di qualche cosa ...
... ora c'è da capire COME e DOVE vuole le varie cose per compilarle ... :frowning:

Allora, cominciamo ...

... prima di tutto, per semplificarmi la vita nell'installazione degli innumerevoli pacchetti richiesti, ho installato "Homebrew", operazione che è facilmente fattibile su Mac OS X da terminale digitando il seguente comando :

ruby -e "$(curl -fsSL https://raw.github.com/mxcl/homebrew/go)"

Installato Homebrew ho potuto poi installare tutti gli altri pacchetti, semplicemente, con il comando :

brew install nome_pacchetto

L'elenco completo dei pacchetti che, tramite brew, ho dovuto installare è il seguente (estratto con il comando brew list) :

brew list
autoconf            gmp           libmpdclient           libusb-compat           pkg-config
automake            jasper        libpng                 mpc                     texinfo
dfu-programmer      jpeg          libtiff                mpfr                    wget
git                 libmpc        libusb                 netpbm

... ok, ce ne anche qualch'uno in più (git, libusb, dfu-programmer) ... ma conviene installarli, tanto servono :slight_smile:

Non basta, ho dovuto installare tutto il package TeX per il quale, fortunatamente, esiste una distribuzione aggiornata per OS X : http://mirror.ctan.org/systems/mac/mactex/MacTeX.pkg ... occhio è un .pkg da oltre 2 GB ... ma almeno si installa senza problemi ... :wink:

Quindi ... questo è l'ambiente completo che al momento ho dovuto creare per poter avere tutti i moduli che, come dicevo, lo script fornito da Atmel, richiedeva al lancio ...
... ora ... quando siamo tutti sincronizzati, vediamo se riusciamo a capire dove mettere le varie cose affinché lo script le trovi :wink:

Aspetto notizie da chi è interessato a partecipare ...

Guglielmo

Se posso essere d'aiuto (e se lo trovo!!!) accendo il mio Hackintosh con leopard :smiley:

Ragazzi ... FORSE e sottolineo FORSE ... ho trovato una soluzione per OS X ...

... qualcuno ha scritto le apposite "formule" per brew ... QUI : GitHub - larsimmisch/homebrew-avr: AVR toolchain for homebrew ... ho appena lanciato :

brew install avr-libc

che dovrebbe generare TUTTA la Toolchain aggiornata :slight_smile:

Vi tengo informati ...

Guglielmo

**RIPORTO IL RISULTATO !!!! **

Guglielmos-iMac-27:~ gpb01$ brew tap larsimmisch/avr
Cloning into '/usr/local/Library/Taps/larsimmisch-avr'...
remote: Counting objects: 48, done.
remote: Compressing objects: 100% (40/40), done.
remote: Total 48 (delta 18), reused 31 (delta 8)
Unpacking objects: 100% (48/48), done.
Checking connectivity... done
Tapped 3 formula
Guglielmos-iMac-27:~ gpb01$ brew install avr-libc
==> Installing avr-libc dependency: avr-binutils
==> Downloading http://ftpmirror.gnu.org/binutils/binutils-2.23.1.tar.bz2
######################################################################## 100.0%
==> Downloading patches
######################################################################## 100.0%
==> Patching
patching file binutils/size.c
==> building libbfd
==> ./configure --enable-install-libbfd --prefix=/usr/local/Cellar/avr-binutils/
==> make
==> make install
==> ./configure --target=avr --prefix=/usr/local/Cellar/avr-binutils/2.23.1 --in
==> make
==> make install
  /usr/local/Cellar/avr-binutils/2.23.1: 139 files, 12M, built in 3.2 minutes
==> Installing avr-libc dependency: avr-gcc
==> Downloading http://ftp.gnu.org/gnu/gcc/gcc-4.7.2/gcc-4.7.2.tar.bz2
######################################################################## 100.0%
==> ../configure --enable-languages=c,c++ --target=avr --disable-libssp --disabl
==> make
==> make install
  /usr/local/Cellar/avr-gcc/4.7.2: 229 files, 40M, built in 9.7 minutes
==> Installing avr-libc
==> Downloading http://download.savannah.gnu.org/releases/avr-libc/avr-libc-1.8.
######################################################################## 100.0%
==> ./configure --build=i686-apple-darwin12.4.0 --prefix=/usr/local/Cellar/avr-l
==> make install
==> copying /usr/local/Cellar/avr-libc/1.8.0/avr -> /usr/local/Cellar/avr-gcc/4.
  /usr/local/Cellar/avr-libc/1.8.0: 517 files, 24M, built in 3.4 minutes

TUTTO COMPILATO SENZA ERRORI !!!! XD XD XD

Ora ... resta da capire come utilizzare quello che ha prodotto ... LEO ... mi sa che mi devi dare una mano ... :grin: :grin: :grin:

Guglielmo

gpb01:
**RIPORTO IL RISULTATO !!!! **

Guglielmos-iMac-27:~ gpb01$ brew tap larsimmisch/avr

Cloning into '/usr/local/Library/Taps/larsimmisch-avr'...
remote: Counting objects: 48, done.
remote: Compressing objects: 100% (40/40), done.
remote: Total 48 (delta 18), reused 31 (delta 8)
Unpacking objects: 100% (48/48), done.
Checking connectivity... done
Tapped 3 formula
Guglielmos-iMac-27:~ gpb01$ brew install avr-libc
==> Installing avr-libc dependency: avr-binutils
==> Downloading http://ftpmirror.gnu.org/binutils/binutils-2.23.1.tar.bz2
######################################################################## 100.0%
==> Downloading patches
######################################################################## 100.0%
==> Patching
patching file binutils/size.c
==> building libbfd
==> ./configure --enable-install-libbfd --prefix=/usr/local/Cellar/avr-binutils/
==> make
==> make install
==> ./configure --target=avr --prefix=/usr/local/Cellar/avr-binutils/2.23.1 --in
==> make
==> make install
 /usr/local/Cellar/avr-binutils/2.23.1: 139 files, 12M, built in 3.2 minutes
==> Installing avr-libc dependency: avr-gcc
==> Downloading http://ftp.gnu.org/gnu/gcc/gcc-4.7.2/gcc-4.7.2.tar.bz2
######################################################################## 100.0%
==> ../configure --enable-languages=c,c++ --target=avr --disable-libssp --disabl
==> make
==> make install
 /usr/local/Cellar/avr-gcc/4.7.2: 229 files, 40M, built in 9.7 minutes
==> Installing avr-libc
==> Downloading http://download.savannah.gnu.org/releases/avr-libc/avr-libc-1.8.
######################################################################## 100.0%
==> ./configure --build=i686-apple-darwin12.4.0 --prefix=/usr/local/Cellar/avr-l
==> make install
==> copying /usr/local/Cellar/avr-libc/1.8.0/avr -> /usr/local/Cellar/avr-gcc/4.
 /usr/local/Cellar/avr-libc/1.8.0: 517 files, 24M, built in 3.4 minutes





**TUTTO COMPILATO SENZA ERRORI !!!!** XD XD XD


Ora ... resta da capire come utilizzare quello che ha prodotto ... **LEO** ... mi sa che mi devi dare una mano ... :grin: :grin: :grin:

Guglielmo

Ottima notizia!!.. E per di più nella mia prima giornata di mare!!!... Per qualche gi

gpb01:
**RIPORTO IL RISULTATO !!!! **

Guglielmos-iMac-27:~ gpb01$ brew tap larsimmisch/avr

Cloning into '/usr/local/Library/Taps/larsimmisch-avr'...
remote: Counting objects: 48, done.
remote: Compressing objects: 100% (40/40), done.
remote: Total 48 (delta 18), reused 31 (delta 8)
Unpacking objects: 100% (48/48), done.
Checking connectivity... done
Tapped 3 formula
Guglielmos-iMac-27:~ gpb01$ brew install avr-libc
==> Installing avr-libc dependency: avr-binutils
==> Downloading http://ftpmirror.gnu.org/binutils/binutils-2.23.1.tar.bz2
######################################################################## 100.0%
==> Downloading patches
######################################################################## 100.0%
==> Patching
patching file binutils/size.c
==> building libbfd
==> ./configure --enable-install-libbfd --prefix=/usr/local/Cellar/avr-binutils/
==> make
==> make install
==> ./configure --target=avr --prefix=/usr/local/Cellar/avr-binutils/2.23.1 --in
==> make
==> make install
 /usr/local/Cellar/avr-binutils/2.23.1: 139 files, 12M, built in 3.2 minutes
==> Installing avr-libc dependency: avr-gcc
==> Downloading http://ftp.gnu.org/gnu/gcc/gcc-4.7.2/gcc-4.7.2.tar.bz2
######################################################################## 100.0%
==> ../configure --enable-languages=c,c++ --target=avr --disable-libssp --disabl
==> make
==> make install
 /usr/local/Cellar/avr-gcc/4.7.2: 229 files, 40M, built in 9.7 minutes
==> Installing avr-libc
==> Downloading http://download.savannah.gnu.org/releases/avr-libc/avr-libc-1.8.
######################################################################## 100.0%
==> ./configure --build=i686-apple-darwin12.4.0 --prefix=/usr/local/Cellar/avr-l
==> make install
==> copying /usr/local/Cellar/avr-libc/1.8.0/avr -> /usr/local/Cellar/avr-gcc/4.
 /usr/local/Cellar/avr-libc/1.8.0: 517 files, 24M, built in 3.4 minutes





**TUTTO COMPILATO SENZA ERRORI !!!!** XD XD XD


Ora ... resta da capire come utilizzare quello che ha prodotto ... **LEO** ... mi sa che mi devi dare una mano ... :grin: :grin: :grin:

Guglielmo

Ottima notizia!!.. E per di più nella mia prima giornata di mare!!!... Per qualche giorno ho deciso di non tirare fuori il Mac dalla borsa,ma nel frattempo vi seguo con estremo interesse!!!...ps: fosse la volta buona

Si, ottima notizia ... ora però ho il tutto suddiviso in 3 cartelle ...

  • avr-binutils
  • avr-gcc
  • avr-libc

... quello che occorre capire COSA prendere da ciascuna per creare LA cartella da sostituire dentro Arduino ... LEOOOOOOOOOOO ...

Guglielmo

Per completezza, nello zip allegato, l'elenco dei files di ogni singola cartella suddivisi nelle varie sottocartelle, ottenuto con ...

ls -laR *

Guglielmo

Archive.zip (11.2 KB)

Leo (... e altri utilizzatori Linux) ... per fare le prove ... sembra che Homebrew, nato per OS X, sia disponibile anche per Linux : GitHub - Linuxbrew/legacy-linuxbrew: This repository is defunct, because it has been split into https://github.com/Linuxbrew/brew and https://github.com/Linuxbrew/homebrew-core ...
... potresti provare ad installarlo e vedere se funziona bene :wink:

Così poi dovresti poter compilare la Toolchain usando la stessa "formula" che ho usato io per Mac :slight_smile:

Guglielmo

Leggo solo stamattina. Non ho capito se hai compilato ed installato tutta la toolchain oppure no.
Nel dubbio, allego lo script con le modifiche che avevo fatto io e che compilava fino ad un certo punto (mi pare fino a gcc-avr). E con le istruzioni su cosa scaricare e dove metterlo prima di avviare la compilazione

ISTRUZIONI (1.1 KB)

build-avr8-gnu-toolchain.sh (38.1 KB)

leo72:
Leggo solo stamattina. Non ho capito se hai compilato ed installato tutta la toolchain oppure no.
...

Rileggi con attenzione il tutto ...
... ho trovato una "formula" per Homebrew che permette la CORRETTA compilazione di tutti i moduli (ultima release)

  • avr-binutils
  • avr-gcc
  • avr-libc

... solo che ora mi serve una mano a capire come, da tre directory separate che contengono il tutto, creare l'unica directory "avr" che è poi quella da sostituire dentro ad "Arduino" ...

GRAZIE :grin:

Guglielmo

Eh... bel problema...
Guarda nello script che ti ho allegato se c'è la parte relativa alla costruzione della cartella della toolchain.

Homebrew per me è cosa oscura fino a che qualcuno non mi spiega cosa fa.

Ho visto il risultato dei comandi lanciati da gpb01 e non ho capito qual'è il suo obbiettivo.

Dal risultato dei comandi lanciati vedo che ha scaricato pacchetti, patch e le ha applicate e poi esegue il build ed install, però da atmel non scarica nulla
quindi non si tratta della toolchain Atmel ma di quella GNU con gcc 4.7.2, ma può essere che mi sbaglio io.

Lo script bash di Atmel non dovrebbe funzionare su MAC, perchè ci sono dei controlli che cercano di individuare il sistema host di partenza e non è prevista una ricerca di sistema host Mac. Inoltre lo script effettua una sostituzione in toto degli header della libreria avr-libc, cosa che per come siamo abbituati noi di linux è cosa da non fare. Inoltre cambia il nome dei pacchetti prima della compilazione, attiva totalmente la generazione della documentazione che appunto richiede TeTex & company. Ovviamente fa anche altre cose più complesse che non riesco a descrivere a parole.

Comunque per quello che vale, il modo scelto da Atmel per costruire la toolchain non è il massimo, però ha il vantaggio di lavorare anche su win, su SUN e altro tranne che darwin o macosx, ma questo si può risolvere modificando lo script.

PS: io uso la versione precedente della toolchain atmel, quella con avr-gcc 4.5.1

Ciao.

Facciamo (Fate) il debug dello script di atmel in questo modo.

Lo script inizia qui:

############# Start of main program. ####################
# chiamata a funzione start_timer
start_timer

############ Set up some usable variables #######################
SUDO_PASSWORD=
KEEP_BUILD_FOLDER="NO"
TIMESTAMP=$(date +%Y%m%d%H%M)
binutils_version_atmel="atmel-$(date +%Y%m%d%H%M%Z)"
gcc_version_atmel="atmel-$(date +%Y%m%d%H%M%Z)"
gdb_version_atmel="atmel-$(date +%Y%m%d%H%M%Z)"
platform_version=""
srcdir=
builddir=
execdir=`pwd`

# aggiunte echo di debug
echo "binutils_version_atmel:"$binutils_version_atmel
echo "gcc_version_atmel:"$gcc_version_atmel
echo "gdb_version_atmel:"$gdb_version_atmel
# fine echo di debug

# Set Toolchain version number
# Use env variable AVR_GNU_TOOLCHAIN_VERSION if set
avr_8_gnu_toolchain_version=${AVR_8_GNU_TOOLCHAIN_VERSION:-"3.2.0"}

# la versione dovrebbe essere 3.4.2, quindi occorre chiamare lo script da bash in questo modo:
# AVR_8_GNU_TOOLCHAIN_VERSION=3.4.2 ./build-avr8-gnu-toolchain.sh
# lasciamo stare tutto com'è

echo "avr_8_gnu_toolchain_version:"$avr_8_gnu_toolchain_version
echo "lo script termina qui"
exit 0

# Set BUILD_NUMBER
# BUILD_NUMBER is set by Hudson build server or can be set before running this script
# If not set we use the date
BUILD_NUMBER=${BUILD_NUMBER:-$(date +%Y%m%d%H%M)}

Lo script termina prematuramente dove viene messa l'istruzione 'exit 0', spostatela di volta in volta. Il caratte # apre il commento
Il comando echo stampa sul terminale ciò che c'è tra apici "", per stampare una variabile fatela precedere dal simbolo $

Lo script diventa complicato da leggere dove c'è il codice che gestisce i parametri della riga di comando.

Su Mac aprire terminale bash e eseguire il seguente comando:

echo "OSTYPE"${OSTYPE}

Su Fedora il risultato è: 'linux-gnu'
Su Mac ??

Lo script continua fino ad intercettare le opzioni della riga di comando, il codice è il seguente:

############ Get and decode options given #########################
while getopts "B:b:klhH:p:P:s:T:" options; do
  case $options in
      B ) build_platform=$OPTARG
          ;;
      b )	builddir=$OPTARG
          ;;
      H ) host_platform=$OPTARG
          ;;
      k )
          KEEP_BUILD_FOLDER="YES"
          ;;
      l )
          echo "Default packages and build order:"
          for package in $packages
          do
              echo $package
          done
          exit 1
          ;;
    p )	AVR_PREFIX=$OPTARG
        ;;
    P ) SUDO_PASSWORD=$OPTARG
        ;;
      s )	srcdir=$OPTARG
          ;;
    h ) echo "$usage"
        exit 1;;
    \? ) echo "$usage"
         exit 1;;
    * ) echo "$usage"
          exit 1;;

  esac
done

Il codice è abbastanza esplicativo.
Interessante è il seguente codice:

######### Check for crosscompile ###############

# If build_platform != host_platform != target_platform
# then we are doing canadian cross
# since target always is avr32 or avr32-linux we check only
# the build and host platforms
if test ${host_platform} != ${build_platform}
then
    canadian_cross=true;
fi

Se build_platform è diverso da host_platform la variabile 'canadian_cross=true', per avr8 build e host devono essere diverso, mentre nel caso
di AVR32 il compilatore può essere nativo installato in una sd su un embedded board basata su AVR32, oppure può essere un canadian cross compiler.
Peccato che questo non ci dice nulla riguardo al valore che deve assumere 'build_platform', cosa sarà AVR, avr, AVR8, avr8, vediamo se spunta fuori.

Ciao.

x iscrizione

MauroTec:
...
Su Mac aprire terminale bash e eseguire il seguente comando:

echo "OSTYPE"${OSTYPE}

Su Fedora il risultato è: 'linux-gnu'
Su Mac ??
...

Su Mac è : darwin12

Riprendendo il discorso ...
... Homebrew non è altro che un sistema intelligente (... e ti assicuro che funziona molto molto bene) di installazione dei pacchetti :slight_smile:

Relativamente alla Toolchain, anche Atmel usa tutti i moduli GNU con le dovute patch ... stessa cosa fa quella "formula" (... sono gli script per brew) di installazione che ho riportato.

Il problema è che mentre alla fine lo script di Atmel raggruppa il tutto in un'unica cartella, qui ho le tre cartelle separate ed i symlinks dei files in /usr/local/bin ... :~

Probabilmente, quello che tocca fare è ... vedere cosa c'è nella cartella AVR (quella che si sostituisce in Arduino) e ricrearla andando a pescare i vari pezzi dalle tre cartelle separate ...
... non che sia difficile, solo ... TERRIBILMENTE lungo e noioso XD XD XD

Guglielmo

@gpb01
Io però vedo che patch dal sito di atmel non ne vengono prelevate, ma ne ho vista una sola prelevata da GNU, quindi se tu sei sicuro sono sicuro anche io.

Questo pezzo di codice si chiede: Su che sistema sono?

# See if we need to change or set some defaults
if test "${OSTYPE}" = "cygwin"
then
    build_platform=i686-pc-cygwin
    host_platform=i686-pc-cygwin
elif test "${OSTYPE}" = "msys"
then
    build_platform=i686-pc-mingw32
    host_platform=i686-pc-mingw32
else
    distribution=`lsb_release -i | cut -f2` || echo "WARNING: Couldn't determine which distribution"
fi

# Ubuntu has some strange naming of old autoconf-2.13
if test ${distribution} = "Ubuntu"
then
    AUTOCONF213_EXE=autoconf2.13
else
    AUTOCONF213_EXE=autoconf-2.13
fi

Come si può intuire prende in considerazione solo windows e ubuntu.
Se su windows è installato cygwin, o se msys altrimenti chiama lsb_release -i | cut -f2, che su fedora da errore perché manca il programma lsb_release.
Si potrebbe modificare così:

if test "${OSTYPE}" = "cygwin"
then
    build_platform=i686-pc-cygwin
    host_platform=i686-pc-cygwin
elif test "${OSTYPE}" = "msys"
then
    build_platform=i686-pc-mingw32
    host_platform=i686-pc-mingw32
elif test "${OSTYPE}" = "darwin12"
    build_platform=?? (ancora da stabilire)
    host_platform=?? (ancora da stabilire) forse macosx
else
    distribution=`lsb_release -i | cut -f2` || echo "WARNING: Couldn't determine which distribution"
fi

Ciao.

Il problema è che mentre alla fine lo script di Atmel raggruppa il tutto in un'unica cartella, qui ho le tre cartelle separate ed i symlinks dei files in /usr/local/bin ... smiley-confuse

Probabilmente, quello che tocca fare è ... vedere cosa c'è nella cartella AVR (quella che si sostituisce in Arduino) e ricrearla andando a pescare i vari pezzi dalle tre cartelle separate ...
... non che sia difficile, solo ... TERRIBILMENTE lungo e noioso smiley-lol smiley-lol smiley-lol

Ma invece credo che basti eliminare la cartella avr da dentro il tree della directory arduino, o rinominarla. Se funziona come linux il path /usr/local/bin ha il path attivato e se da shell esegui avr-gcc -v e non da errore dovresti poter usare tutta la toolchain.

Ciao.

MauroTec:
...
Ma invece credo che basti eliminare la cartella avr da dentro il tree della directory arduino, o rinominarla. Se funziona come linux il path /usr/local/bin ha il path attivato e se da shell esegui avr-gcc -v e non da errore dovresti poter usare tutta la toolchain.

Mauro,
si, da shell avr-gcc funziona correttamente :

Guglielmos-iMac-27:~ gpb01$ avr-gcc -v
Using built-in specs.
COLLECT_GCC=avr-gcc
COLLECT_LTO_WRAPPER=/usr/local/Cellar/avr-gcc/4.7.2/libexec/gcc/avr/4.7.2/lto-wrapper
Target: avr
Configured with: ../configure --enable-languages=c,c++ --target=avr --disable-libssp --disable-nls --with-dwarf2 --prefix=/usr/local/Cellar/avr-gcc/4.7.2 --with-gmp=/usr/local/Cellar/gmp/5.1.2 --with-mpfr=/usr/local/Cellar/mpfr/3.1.2 --with-mpc=/usr/local/Cellar/libmpc/1.0.1 --datarootdir=/usr/local/Cellar/avr-gcc/4.7.2/share --bindir=/usr/local/Cellar/avr-gcc/4.7.2/bin --with-as=/usr/local/bin/avr-as
Thread model: single
gcc version 4.7.2 (GCC)
Guglielmos-iMac-27:~ gpb01$

... il problema è che se rinomino la cartella avr in Arduino, ad un certo punto da errore ...

Cannot run program "/Applications/Arduino.app/Contents/Resources/Java/hardware/tools/avr/bin/avr-g++ -c -g -Os -Wall -fno-exceptions -ffunction-sections -fdata-sections -mmcu=atmega328p -DF_CPU=16000000L -MMD -DUSB_VID=null -DUSB_PID=null -DARDUINO=105 -I/Applications/Arduino.app/Contents/Resources/Java/hardware/arduino/cores/arduino -I/Applications/Arduino.app/Contents/Resources/Java/hardware/arduino/variants/standard /var/folders/td/xjbgg2n97rl9wsy40_rsj90h0000gn/T/build4216888882758144137.tmp/Blink.cpp -o /var/folders/td/xjbgg2n97rl9wsy40_rsj90h0000gn/T/build4216888882758144137.tmp/Blink.cpp.o"

... quindi sembra che cerca comunque ... la cartella avr dentro ad Arduino.

(ovviamente, da shell, parte anche avr-g++ :wink: )

Guglielmo

... per inciso ... ho anche provato a fregarlo ... creando in Arduino una avr vuota con dentro un symbolic link bin alla mia usr/local/bin ...

La compilazione parte, compila, ma poi genera un'altro errore :

/Applications/Arduino.app/Contents/Resources/Java/hardware/tools/avr/bin/avr-g++ -c -g -Os -Wall -fno-exceptions -ffunction-sections -fdata-sections -mmcu=atmega328p -DF_CPU=16000000L -MMD -DUSB_VID=null -DUSB_PID=null -DARDUINO=105 -I/Applications/Arduino.app/Contents/Resources/Java/hardware/arduino/cores/arduino -I/Applications/Arduino.app/Contents/Resources/Java/hardware/arduino/variants/standard /var/folders/td/xjbgg2n97rl9wsy40_rsj90h0000gn/T/build4968118242358303631.tmp/Blink.cpp -o /var/folders/td/xjbgg2n97rl9wsy40_rsj90h0000gn/T/build4968118242358303631.tmp/Blink.cpp.o 
/Applications/Arduino.app/Contents/Resources/Java/hardware/tools/avr/bin/avr-gcc -c -g -Os -Wall -ffunction-sections -fdata-sections -mmcu=atmega328p -DF_CPU=16000000L -MMD -DUSB_VID=null -DUSB_PID=null -DARDUINO=105 -I/Applications/Arduino.app/Contents/Resources/Java/hardware/arduino/cores/arduino -I/Applications/Arduino.app/Contents/Resources/Java/hardware/arduino/variants/standard /Applications/Arduino.app/Contents/Resources/Java/hardware/arduino/cores/arduino/avr-libc/malloc.c -o /var/folders/td/xjbgg2n97rl9wsy40_rsj90h0000gn/T/build4968118242358303631.tmp/malloc.c.o 
/Applications/Arduino.app/Contents/Resources/Java/hardware/tools/avr/bin/avr-gcc -c -g -Os -Wall -ffunction-sections -fdata-sections -mmcu=atmega328p -DF_CPU=16000000L -MMD -DUSB_VID=null -DUSB_PID=null -DARDUINO=105 -I/Applications/Arduino.app/Contents/Resources/Java/hardware/arduino/cores/arduino -I/Applications/Arduino.app/Contents/Resources/Java/hardware/arduino/variants/standard /Applications/Arduino.app/Contents/Resources/Java/hardware/arduino/cores/arduino/avr-libc/realloc.c -o /var/folders/td/xjbgg2n97rl9wsy40_rsj90h0000gn/T/build4968118242358303631.tmp/realloc.c.o 
/Applications/Arduino.app/Contents/Resources/Java/hardware/tools/avr/bin/avr-gcc -c -g -Os -Wall -ffunction-sections -fdata-sections -mmcu=atmega328p -DF_CPU=16000000L -MMD -DUSB_VID=null -DUSB_PID=null -DARDUINO=105 -I/Applications/Arduino.app/Contents/Resources/Java/hardware/arduino/cores/arduino -I/Applications/Arduino.app/Contents/Resources/Java/hardware/arduino/variants/standard /Applications/Arduino.app/Contents/Resources/Java/hardware/arduino/cores/arduino/WInterrupts.c -o /var/folders/td/xjbgg2n97rl9wsy40_rsj90h0000gn/T/build4968118242358303631.tmp/WInterrupts.c.o 
/Applications/Arduino.app/Contents/Resources/Java/hardware/tools/avr/bin/avr-gcc -c -g -Os -Wall -ffunction-sections -fdata-sections -mmcu=atmega328p -DF_CPU=16000000L -MMD -DUSB_VID=null -DUSB_PID=null -DARDUINO=105 -I/Applications/Arduino.app/Contents/Resources/Java/hardware/arduino/cores/arduino -I/Applications/Arduino.app/Contents/Resources/Java/hardware/arduino/variants/standard /Applications/Arduino.app/Contents/Resources/Java/hardware/arduino/cores/arduino/wiring.c -o /var/folders/td/xjbgg2n97rl9wsy40_rsj90h0000gn/T/build4968118242358303631.tmp/wiring.c.o 
/Applications/Arduino.app/Contents/Resources/Java/hardware/tools/avr/bin/avr-gcc -c -g -Os -Wall -ffunction-sections -fdata-sections -mmcu=atmega328p -DF_CPU=16000000L -MMD -DUSB_VID=null -DUSB_PID=null -DARDUINO=105 -I/Applications/Arduino.app/Contents/Resources/Java/hardware/arduino/cores/arduino -I/Applications/Arduino.app/Contents/Resources/Java/hardware/arduino/variants/standard

...
...
...

collect2: fatal error: cannot find 'ld'
compilation terminated.

Non mi sembra quindi una strada praticabile ... che dici ???

Guglielmo