# CryoPID [solved]

## manuels

Hallo zusammen,

ich möchte das schöne kleine Programm cryoPID bei mir installieren.

Das existierende Ebuild ist ein bisschen veraltet und kapputt.

Also habe ich die Versionsnummer angepasst und Leerzeichen vor und nach der URL im Ebuild eingefügt, damit Portage damit zurecht kommt.

Dann trat ein bekannter Bug auf: /usr/include/asm/page*.h existieren nicht. Dies habe ich mit einem Workaround gelöst:

```

ln -s /usr/src/linux/include/asm/page.h /usr/include/asm

ln -s /usr/src/linux/include/asm/page_32.h /usr/include/asm

ln -s /usr/src/linux/include/asm/page_64.h /usr/include/asm

```

Leider kompiliert das Programm immer noch nicht. Ich bekomm immer noch folgenden Fehler:

```

>>> Unpacking source...

>>> Unpacking cryopid-0.5.9.1-x86_64.tar.gz to /var/tmp/portage/sys-process/cryopid-0.5.9.1/work

>>> Source unpacked.

>>> Compiling source in /var/tmp/portage/sys-process/cryopid-0.5.9.1/work/cryopid-0.5.9.1 ...

make

! test -h arch && rm -f arch && ln -s arch-x86_64 arch || true

make -C arch 'CFLAGS+= -fno-stack-protector'

make[1]: Entering directory `/var/tmp/portage/sys-process/cryopid-0.5.9.1/work/cryopid-0.5.9.1/src/arch-x86_64'

cc -g -Wall -Os -fno-stack-protector -I. -Iarch -D__x86_64__  -fno-stack-protector -g -Wall -Os -fpic -I. -I..   -c -o common.o common.c

cc    -c -o get_task_size.o get_task_size.S

cc -g -Wall -Os -fno-stack-protector -I. -Iarch -D__x86_64__  -fno-stack-protector -g -Wall -Os -fpic -I. -I..   -c -o stub.o stub.c

stub.c:19: error: expected declaration specifiers or '...' before 'arch_prctl'

stub.c:19: error: expected declaration specifiers or '...' before 'code'

stub.c:19: error: expected declaration specifiers or '...' before 'addr'

stub.c:19: warning: data definition has no type or storage class

stub.c:19: warning: type defaults to 'int' in declaration of '_syscall2'

make[1]: *** [stub.o] Error 1

make[1]: Leaving directory `/var/tmp/portage/sys-process/cryopid-0.5.9.1/work/cryopid-0.5.9.1/src/arch-x86_64'

make: *** [arch] Error 2

```

Hat jemand von euch nen Plan was hier falsch läuft?

----------

## manuels

*bump*

----------

## manuels

Hat keiner eine Idee?

----------

## doedel

Das ist ein Fehler/veralteter Code im Quellcode, hat nichts mit Portage o.ä. zu tun.

Ich bin kein C-crack, aber poste mal diese Zeilen + 3..5 nach oben/unten:

```
stub.c:19: error: expected declaration specifiers or '...' before 'arch_prctl'

stub.c:19: error: expected declaration specifiers or '...' before 'code'

stub.c:19: error: expected declaration specifiers or '...' before 'addr' 
```

----------

## manuels

So wirklich kann ich mit der Zeile nichts anfangen:

```

[...lots of #includes...]

#include "process.h"

#if !arch_prctl

_syscall2(int, arch_prctl, int, code, unsigned long, addr); // Das hier ist die Zeile 19

#endif

void set_fs()

{

[...]

```

----------

## doedel

Das ist doch ein Funktionsprototyp, müssen die nicht mit einem Datentyp beginnen?

//edit bzw, was macht arch_prctl? Wenn du sicher weisst, dass das False ist, kannst du die komplette Direktive mitsamt dem Prototyp auskommentieren, bzw ein Versuch ist es allemal Wert.

----------

## manuels

arch_prctl scheint nicht false zu sein. Ich habe gerade das ganze mal auskommentiert und dann mäckert der Linker.

Hab die Funktion auch mal als void deklariert. Es kommt dann der selbe Fehler.

----------

## Anarcho

 *manuels wrote:*   

> So wirklich kann ich mit der Zeile nichts anfangen:
> 
> ```
> 
> [...lots of #includes...]
> ...

 

Also mir kommt die ganze Zeile merkwürdig vor. Versuch dochmal folgendes:

```

#if !arch_prctl

_syscall2(int arch_prctl, int code, unsigned long addr); // Also ein paar Kommas weniger

#endif

```

----------

## 69719

Hab das ganze mal gefixt.

http://homeunix.de/cryopid-0.5.9.1-x86_64.tar.gz

----------

## manuels

stimmt, ist ne Idee. Dann kommt folgendes:

 *Quote:*   

> cc -static -g -Wall -Os -fno-stack-protector -I. -Iarch -D__x86_64__  -DCOMPILING_STUB -Tarch/stub-linking.x -Os -o stub-gzip stub_common.o common.c arch/asmfuncs.o cpimage_r.o cp_r_fd.o cp_r_fd_console.o cp_r_fd_file.o cp_r_fd_fifo.o cp_r_fd_socket.o cp_r_misc.o cp_r_sighand.o cp_r_vma.o cp_r_header.o arch/arch_r_objs.o fork2.o writer_gzip.c -lz -DPROVIDE_MALLOC -nostdlib -nostartfiles ../dietlibc-x86_64/dietlibc.a -lgcc                                                                                                                                           
> 
> ../dietlibc-x86_64/dietlibc.a(stderr.o): In function `__fflush_stderr':                                                                      
> 
> stderr.c.text+0x8): warning: warning: your code uses stdio (7+k bloat).                                                                    
> ...

 

Schätze der Quellcode ist ziemlich hin...

----------

## 69719

 *manuels wrote:*   

> stimmt, ist ne Idee. Dann kommt folgendes:
> 
>  *Quote:*   cc -static -g -Wall -Os -fno-stack-protector -I. -Iarch -D__x86_64__  -DCOMPILING_STUB -Tarch/stub-linking.x -Os -o stub-gzip stub_common.o common.c arch/asmfuncs.o cpimage_r.o cp_r_fd.o cp_r_fd_console.o cp_r_fd_file.o cp_r_fd_fifo.o cp_r_fd_socket.o cp_r_misc.o cp_r_sighand.o cp_r_vma.o cp_r_header.o arch/arch_r_objs.o fork2.o writer_gzip.c -lz -DPROVIDE_MALLOC -nostdlib -nostartfiles ../dietlibc-x86_64/dietlibc.a -lgcc                                                                                                                                           
> 
> ../dietlibc-x86_64/dietlibc.a(stderr.o): In function `__fflush_stderr':                                                                      
> ...

 

Nein, nur veraltet. Mit der gefixten version funktioniert es wieder.

----------

## manuels

Was meinst du mit veraltet?

Ich habe nie neueste Version 0.5.9.1 von der Homepage.

Wo hast du eine neue Version gefunden?

----------

## 69719

Das der Quelltext nicht mehr gepflegt, weiterentwickelt wird. Die letzte Version von denen ist vom 29 November 2006, die neue/gefixte Version habe ich erstellt.

----------

## manuels

Tschuldige, habe deinen Post übersehen.

Damit klappts. Danke!

----------

