# [solved] Lizenzfile für Intel C Compiler

## schmidicom

Ich wollte mal den icc ausprobieren und habe mich wie es emerge wollte bei Intel registriert doch von einer Lizenz fehlt nach wie vor jede Spur. Alles was ich bekommen habe ist ein E-Mail mit einem Link wo sich icc aber keine Lizenz herunterladen lässt.

Was nun?

```
 * Messages for package dev-lang/icc-13.1.5.192:

 * License file not found!

 * Make sure you have recieved the an Intel license.

 * To receive a non-commercial license, you need to register at:

 * http://software.intel.com/en-us/articles/non-commercial-software-development/

 * Install the license file into /opt/intel/composerxe-2013_update4.5.192/licenses/

 * before proceeding with installation of icc-13.1.5.192

 * ERROR: dev-lang/icc-13.1.5.192 failed (pretend phase):

 *   Could not find license file

 * 

 * Call stack:

 *          ebuild.sh, line  93:  Called pkg_pretend

 *          ebuild.sh, line 324:  Called intel-sdp_pkg_pretend

 *   intel-sdp.eclass, line 324:  Called die

 * The specific snippet of code:

 *                      die "Could not find license file"

 * 

 * If you need support, post the output of `emerge --info '=dev-lang/icc-13.1.5.192'`,

 * the complete build log and the output of `emerge -pqv '=dev-lang/icc-13.1.5.192'`.

 * The complete build log is located at '/var/tmp/portage/dev-lang/icc-13.1.5.192/temp/build.log'.

 * The ebuild environment file is located at '/var/tmp/portage/dev-lang/icc-13.1.5.192/temp/die.env'.

 * Working directory: '/usr/lib64/portage/pym'

 * S: '/var/tmp/portage/dev-lang/icc-13.1.5.192/work'
```

EDIT1:

Hat sich erledigt.

Das Lizenzfile muss offenbar aus der im E-Mail enthaltenen Serialnummer selbst erstellt werden:

```
# mkdir -p /opt/intel/composerxe-2013_update4.5.192/licenses/

# echo 'XXXX-XXXXXXXX' >> /opt/intel/composerxe-2013_update4.5.192/licenses/meine.lic
```

Jetzt scheint emerge das ganze herunter zu laden.

EDIT2:

Tja, heruntergeladen hat emerge das ganze zwar und auch installiert auch doch benutzbar ist es nicht.

```
Error: A license for CCompL is not available
```

Soviel zum Thema "icc mal ausprobieren"...Last edited by schmidicom on Thu Aug 22, 2013 2:02 pm; edited 2 times in total

----------

## platinumviper

Die Lizenz hing bei mir als Anhang an der Email.

----------

## schmidicom

Ja das habe ich auch oft gelesen, in diversen Foren, doch leider habe keine bekommen und jeder Versuch sich deswegen mit dem Support von Intel in Verbindung zu setzen ist kläglich gescheitert. Einmal habe ich die Antwort bekommen das es nur Support für zahlende Kunden gebe und auch der Lizenz Manager auf ihrer Webseite mit dem sich solche Lizenzdateien erneut versenden lassen nur zahlenden Kunden zur Verfügung stehe.

----------

## platinumviper

Hab mir gerade noch eine Lizenz geholt und diesmal auch keine .lic Datei bekommen. Komisch, letztes Jahr im September hat's noch geklappt.

Pack die runtergeladene .tgz Datei in einem temporären Verzeichnis aus, starte die install.sh und wähle Installation für einen User. Dabei wirst du nach der Seriennummer gefragt und es wird eine Lizenzdatei in ~/intel/licenses angelegt. Wenn du die nach /opt/intel/licenses/ kopierst, sollte es eigentlich gehen. das Verzeichnis ~/intel kannst du dann löschen. Es wird noch ~/isus/update.ini angelegt, das wird wahrscheinlich auch nicht mehr gebraucht.

Hab das in einer VM mit Linux Mint ausprobiert weil icc auf den Gentoo Kisten überall schon installiert ist, also bin ich nicht 100%ig sicher ob das so funktioniert.

----------

## schmidicom

Ich werde es nochmal mit icc versuchen aber der download aus dem Mail dürfte eine Weile dauern sind ja rund 1.6 GB. Und eine Anpassung im ebuild, so das man sich icc ohne Lizenzfile installieren kann und nachher eine install.sh vorfindet, wäre nicht schlecht.

PS: Schade das LLVM/clang noch nicht wirklich brauchbar , konnte damit nicht einmal den Kernel bauen, aber das soll ja noch werden.

----------

## platinumviper

emerge hat für dich schon parallel_studio_xe_2013_update4.tgz runtergeladen, die kannst du nehmen.

----------

## schmidicom

Gefunden, entpackt, installl.sh ausgeführt und Serialnummer aus dem E-Mail angegeben. Doch Leider war auch das eine Sackgasse:

```
The serial number you provided is not valid for this product.
```

----------

## platinumviper

Fordere bei Intel noch einmal eine Lizenz an, diesmal für das Parallel Studio.

https://registrationcenter.intel.com/RegCenter/NComForm.aspx?ProductID=1540

Das gehört natürlich auch in den Info-Text des ebuilds, welche Lizenz man braucht.

Hab gerade mal mit quse nachgesehen, das icc-USE-Flag gibt es nicht mehr. Geschwindigkeitsvorteile hast du also nur bei eigenen Programmen. Ob sich der Kernel mit icc kompilieren lässt werde ich gleich mal probieren, habe aber Zweifel.  :Wink: 

----------

## schmidicom

Ja jetzt klappt es.

Habe den Installer abgebrochen nachdem er die beiden Lizenzdateien generierte und diese nach "/opt/intel/composerxe-2013_update4.5.192/licenses/" kopiert.

Ich hoffe der ebuild Schreiber findet einen weg den Teil aus der install.sh herauszulösen der für das generieren der Dateien verantwortlich ist sonst werden auch noch andere ein Problem bekommen.

Danke für die Hilfe.

EDIT:

 *platinumviper wrote:*   

> Ob sich der Kernel mit icc kompilieren lässt werde ich gleich mal probieren, habe aber Zweifel. 

 

Laut einem PDF das ich auf der Intel Homepage gefunden habe sollte es eigentlich gehen wengleich mit mehr Warnungen bezüglich Syntaxfehler als bei GNU. Nur scheinst du recht zu haben denn er kommt beim Kernel bauen wirklich nicht allzu weit, zumindest bei mir nicht.

----------

## platinumviper

Musste leider weg.

Hab's hier jetzt auf nem alten Intel i5 750 probiert. Habe einfach nur im Makefile die Variablen HOSTCC und HOSTCXX auf icc bzw icpc gesetzt. Dann ganz normal mit 

```
make -j24 O=$KBUILD_OUTPUT all
```

 kompiliert und mit 

```
sudo make O=$KBUILD_OUTPUT modules_install install
```

 installiert und dann neu gebootet. Läuft. Kompilieren hat knapp 7 Minuten gedauert, Vergleichswert mit gcc hab ich nicht weil ich da ccache benutze und deshalb nur ca 2 Minuten zum kompilieren brauche.

Mit welchen Sourcen hast du es denn probiert? Ich habe sys-kernel/gentoo-sources-5 in /etc/portage/profile/package.provided stehen und benutze die Original-Sourcen von git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git (stabiler Kernel) bzw git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git (Entwickler-Kernel).

Unvorhersehbare Probleme können auch auftreten, wenn man den Kernel als root kompiliert, sowas testen die Entwickler nicht.

----------

## schmidicom

Ich lade mir die Sourcen (im Moment 3.10.7) auch direkt von kernel.org herunter und baue sie unter meinem Arbeitsuser, deswegen gibt es in meinem lokalen Overlay auch eine "leere" virtual/linux-sources. Gemäß dem PDF soll man den Kernel ohne Modifikation der Makefile mit "make HOSTCC=icc CC=icc" den Kernel bauen können, was dann bei mir aber in folgendem Fehler endet:

schmidicom@slap ~/Kernel/current $ make HOSTCC=icc CC=icc

```
/home/schmidicom/Kernel/linux-3.10.7/arch/x86/Makefile:92: stack protector enabled but no compiler support

make[1]: Für das Ziel »all« ist nichts zu tun.

make[1]: Für das Ziel »relocs« ist nichts zu tun.

  CHK     include/generated/uapi/linux/version.h

  CHK     include/generated/utsrelease.h

  CC      kernel/bounds.s

icc: command line warning #10006: ignoring unknown option '-fno-delete-null-pointer-checks'

icc: command line remark #10148: option '-mpreferred-stack-boundary=3' not supported

icc: command line warning #10006: ignoring unknown option '-funit-at-a-time'

icc: command line warning #10159: invalid argument for option '-m'

icc: command line warning #10159: invalid argument for option '-m'

icc: command line warning #10159: invalid argument for option '-m'

icc: command line warning #10159: invalid argument for option '-m'

icc: command line warning #10006: ignoring unknown option '-Wframe-larger-than=2048'

icc: command line warning #10006: ignoring unknown option '-fconserve-stack'

include/linux/compiler-intel.h(31): warning #47: incompatible redefinition of macro "uninitialized_var" (declared at line 113 of "include/linux/compiler-gcc.h")

  #define uninitialized_var(x) x

          ^

/home/schmidicom/Kernel/linux-3.10.7/arch/x86/include/asm/cpufeature.h(368): error: asm blocks not enabled, use -fasm-blocks

                asm goto("1: jmp %l[t_no]\n"

                    ^

/home/schmidicom/Kernel/linux-3.10.7/arch/x86/include/asm/cpufeature.h(378): warning #12: parsing restarts here after previous syntax error

                         : : "i" (bit) : : t_no);

                                               ^

/home/schmidicom/Kernel/linux-3.10.7/arch/x86/include/asm/cpufeature.h(378): error: expected an expression

                         : : "i" (bit) : : t_no);

                                               ^

/home/schmidicom/Kernel/linux-3.10.7/arch/x86/include/asm/cpufeature.h(380): warning #177: label "t_no" was declared but never referenced

        t_no:

        ^

compilation aborted for kernel/bounds.c (code 2)

make[1]: *** [kernel/bounds.s] Fehler 2

make: *** [prepare0] Fehler 2
```

Aber ich werde es mal mit deiner Variante versuchen, mal sehen was passiert.

EDIT:

So das bauen und neu starten ist fertig aber irgendwie hab ich das Gefühl das die Änderung an der Makefile keine Wirkung zeigte:

```
schmidicom@slap ~/Kernel/current $ dmesg | grep 'Linux version'

[    0.000000] Linux version 3.10.7 (schmidicom@slap) (gcc version 4.7.3 (Gentoo 4.7.3 p1.0, pie-0.5.5) ) #2 SMP Fri Aug 23 08:22:05 CEST 2013
```

Sollte da jetzt nicht icc anstelle von gcc stehen?

----------

## platinumviper

Hast recht, CC muss auch auf icc stehen und dann bekomme ich den selben Fehler wie du.

----------

## py-ro

 *schmidicom wrote:*   

> ..., deswegen gibt es in meinem lokalen Overlay auch eine "leere" virtual/linux-sources.

 

Warum nicht "package.provided" nutzen?

----------

## schmidicom

 *py-ro wrote:*   

> Warum nicht "package.provided" nutzen?

 

Weil das bei mir noch nie wirklich funktioniert hat, vermutlich mache ich was falsch aber meine Lösung funktioniert wenigstens.

----------

## py-ro

Vermutlich nicht in den profile Unterordner gepackt, sondern direkt nach /etc/portage.

Py

----------

## Josef.95

In die package.provided sollte man dann aber wohl besser eine der möglichen Abhängigkeiten setzen, statt das virtual/package selbst. (In diesem Fall also zb sys-kernel/vanilla-sources)

"man portage" sagt dazu:  *Quote:*   

> Virtual packages (virtual/*) should not be specified in package.provided, since virtual packages themselves do not  pro‐
> 
>                      vide  any files, and package.provided is intended to represent packages that do provide files.  Depending on the type of
> 
>                      virtual, it may be necessary to add an entry to the virtuals file and/or add a package that satisfies a virtual to pack‐
> ...

  (Auszug)

----------

