1

Comment obtenir un binaire Win32 de kpack ? Si j'ai bien vu, il n'y en a pas de fourni dans le SDK de PreOS.

Puis-je compiler ça moi-même à partir de GCC ? Si ce n'est pas possible, qqun disposant d'un compilateur C sous Windows pourrait-il me fournir un binaire svp ?

Sources ici : ~technic/
Le source est dans ./sdk/kpack

Merci d'avance. smile

2

http://www.mirari.fr/3Vd2
compilé avec CyGWin, mais j'ai ajouté le switch -mno-cygwin donc tu devrais être tranquille
(et j'ai ajouté un spyware aussi trioui)

3

$ make
gcc -O2 -fomit-frame-pointer -Wall -static -mno-cygwin kpack.c shrink.c -o kpack
shrink.c: In function `InitRep':
shrink.c:433: warning: implicit declaration of function `bzero'
shrink.c: In function `DoHuffCompression':
shrink.c:948: warning: operation on `OutputOffs' may be undefined


(et gcc v3.4.4)

4

Merci hehe grin

5

Héhéhé, c'est intéressant le contenu de ton disque dur \o/

6

J'ai ajouté le switch -s (l'exe ne fait plus que 12.5ko au lieu de 25) : http://www.mirari.fr/hcQ3

7

     -s  Remove all symbol table and relocation information from the exe-
           cutable.

8

Pen^2 (./5) :
Héhéhé, c'est intéressant le contenu de ton disque dur \o/

trifus

./6 -> ok, cool, merci encore !

edit -> ah ok compris, t1 ça doit être parce qu'il fait chaud triso grin
Attends bouge pas, je branche le disque externe, l'autre c'est de la branlette

(et on aura noté la puissance du Pen^2, sachant que je n'ai pas encore lancé l'exe grin)

9

Pas la peine de le brancher, j'y ai déjà accès grâce aux ondes par waves© trivil Le firewall d'Open Office n'aura pas résisté longtemps trinon
(Moué, c'est ce que je te laisse croire embarrassed)

10

11

Euh...

E:\Programmation\Programmes\pexec\src>kpack\kpack.exe loader.89z !pexeclib.89z pexec
Create asm auto-extractible program or archive files (shrink92)
VERSION 3 - Preos 0.72
Usage:   kpack infile1 infile2 infile... outfile
Example: kpack graphlib.9xz userlib.9xz doorslib
If a file is preceded by '!', it won't be compressed.
Can't open file !pexeclib.89z

This application has requested the Runtime to terminate it in an unusual way.
Please contact the application's support team for more information.

Pas remarqué ça quand la compression réussit... PpHd, tu supportes kpack sous Win ? grin

12

C'est le résultat de la fonction "void abort(void)" de stdlib.h (http://www.linux-kheops.com/doc/man/manfr/man-html-0.9/man3/abort.3.html)
kpack.c
}
   /* Open file */
  static_flag = *name == '!';
  f = fopen (name + static_flag, "r");
  if (f == NULL) {
    fprintf (stderr, "Can't open file %s\n", name);
    abort ();
  

Bref, le message fait peur, mais c'est "normal" hehe
=> Not a bug, won't fix embarrassed

13

Ok, j'ignorais, merci. happy

Étrangement, il ne me semble pas obtenir ce comportement sous Linux.

14

Je suppose que le message doit être différent (ou même inexistant) smile

15

(pour corriger le problème :
E:\Programmation\Programmes\pexec\src>kpack\kpack.exe loader.89z !pexeclib.89z pexec 2>nul
tripo)

EDIT : ah en fait non, même pas : je viens d'essayer, et vista affiche carrément une fenêtre "cette app a cessé de fonctionner, Windows recherche une solution au problème..." grin

16

Fournit les bons paramètres.

17

grin

18

./16 Ca déconne évidemment si la compilation a échoué ^^

19

abort(), c'est légèrement brutal grin
atexit() + exit() serait plus doux.
avatar
Membre de la TI-Chess Team.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
Co-admin de TI-Planet.

20

Je propose un patch élégant :
/* Open file */ 
  static_flag = *name == '!'; 
  f = fopen (name + static_flag, "r"); 
  if (f == NULL) { 
    fprintf (stderr, "Can't open file %s\n", name); 
    *(int*)0= 0xDEAD; 
  }

tripo

21

Pen^2 (./20) :
*(int*)0

Un pointeur vers un pointeur qui vaut 0 vers un int ? Putain, le C c'est déjà vieux pour moi triso

22

0 est un int
(int*)0 transtype l'int en pointeur (ie c'est est un pointeur qui pointe vers l'adresse 0)
*(int*)0 déréférence ce pointeur, (ie c'est le contenu du pointeur qui pointe vers 0)
Donc *(int*)0= 0xDEAD écrit 0xDEAD à l'adresse 0 hehe


PS : - "pour moi " embarrassed

23

Pen^2 (./22) :
PS : - "pour moi "

Voilà l'explication ! Merci ! tripo

24

grin

25

C'est exit(1) qu'il faut mettre à la place de abort().
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

26

ou même
#include <stdlib.h>
exit(EXIT_FAILURE) ;

pour être portable (et lisible tongue)

27

Pen^2 (./26) :
ou même
#include <stdlib.h>
exit(EXIT_FAILURE) ;

pour être portable (et lisible tongue)

J'attends le patch tongue

28

Tsss, petit malin ! J'allais le faire, en plus tongue

29

POSIX spécifie que "The value of status may be 0, EXIT_SUCCESS, EXIT_FAILURE, or any other value, though only the least significant 8 bits (that is, status & 0377) shall be available to a waiting parent process.", donc n'importe quelle valeur entre 1 et 255 compris est un code d'erreur valide. Cela dit, EXIT_FAILURE ne vaut pas forcément 1, ça peut être une autre valeur non-nulle. Mais en pratique, en dehors des calculatrices TI (où un dialogue d'erreur correspondant au code d'erreur est affiché), le code d'erreur précis a peu d'importance.
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

30

Au fait Pen^2, ton binaire produit des packs foireux... sad désolé pour ton temps...