Toon posts:

patch van een source bestand

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik moet volgens een voorbeeld in een ander forum het volgende doen :.
Either compile and run against glibc < 2.2 or apply the following patch to src/linux/native/java/lang/UNIXProcess_md.c
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
34,53c34
< 
< /* following lines Hacked by Kent Hulick based on
<  * ftp://people.redhat.com/drepper/libcwait.c
<  * fixes a broken calls to a removed glibc function:*/
< #include <errno.h>
< #include <sys/syscall.h>
< pid_t __libc_wait (int *status)
< {
<   int res;
<   asm volatile ("pushl %%ebx\n\t"
<               "movl %2, %%ebx\n\t"
<               "movl %1, %%eax\n\t"
<               "int $0x80\n\t"
<               "popl %%ebx"
<               : "=a" (res)
<               : "i" (__NR_wait4), "0" (WAIT_ANY), "c" (status), "d" (0),
<                 "S" (0));
<   return res;
< }
< 
---
> extern pid_t __libc_wait(int *status);
Ben nog niet echt een held onder linux, heb van alles geprobeerd met diff en patch maar wil maar niet lukken.

Reden om te patchen is omdat ik een link error krijg tijdens het compilen van een CVM.

Mijn vraag is nu hoe ik UNIXProcess_md.c gepatched krijg met de boven meegegeven patch.

  • sampoo
  • Registratie: Juni 2000
  • Niet online
Sla de inhoud op in bijv. md_c.patch en dan "patch < md_c.patch" in de map waar UNIXProcess_md.c zit draaien. Wel een backupje maken voor het geval dat er onverhoop toch iets fout gaat.

  • eamelink
  • Registratie: Juni 2001
  • Niet online

eamelink

Droptikkels

sampoo schreef op maandag 24 april 2006 @ 14:28:
Sla de inhoud op in bijv. md_c.patch en dan "patch < md_c.patch" in de map waar UNIXProcess_md.c zit draaien. Wel een backupje maken voor het geval dat er onverhoop toch iets fout gaat.
En hoe weet patch dan welke file er gepatched moet worden?

Ik zou

code:
1
patch /usr/src/linux/native/java/lang/UNIXProcess_md.c patchfile


gebruiken :)

  • Straphka
  • Registratie: Augustus 2002
  • Niet online
eamelink schreef op maandag 24 april 2006 @ 15:38:
[...]


En hoe weet patch dan welke file er gepatched moet worden?

Ik zou

code:
1
patch /usr/src/linux/native/java/lang/UNIXProcess_md.c patchfile


gebruiken :)
erm...nee hoor, dat staat vaak in de file.
zie ook "man patch"

code:
1
2
3
4
5
6
SYNOPSIS
       patch [options] [originalfile [patchfile]]

       but usually just

       patch -pnum <patchfile

  • Kees
  • Registratie: Juni 1999
  • Laatst online: 15:17

Kees

Serveradmin / BOFH / DoC
Deze patch zou ik gewoon met een editor inbrengen. Als wat je daarboven neergezet hebt de hele patch is, dan haal je de lijnen met een '<' ervoor weg, en met '>' ervoor zet je ervoor in de plaats

"Een serveradmin, voluit een serveradministrator, is dan weer een slavenbeheerder oftewel een slavendrijver" - Rataplan


  • Wilke
  • Registratie: December 2000
  • Laatst online: 16:20
Wat is eigenlijk het probleem dat je probeert op te lossen?

Het probleem is waarschijnlijk niet 'ik wil een source file patchen (en ik weet niet hoe)', maar dat een of andere applicatie (?) niet werkt/compileert/whatever? Leg dat eens uit....

  • smesjz
  • Registratie: Juli 2002
  • Niet online
patches gebaseerd op unified diffs zijn in de regel wat makkelijker dan de bovenstaande patch. Hier in staat ook de naam van het doelbestand dat gepatched moet worden.

Makkelijkste is als je patch -p0 < blabla.patch kan doen, maar dit ligt gewoon aan de aangeleverde patch.

die -pnum waar Straphka het over heeft slaat terug op de leading slashes en daar heb je dus niks aan als je kijkt naar de patch van de TS. Dat geeft man patch ook prima aan overigens :)

unified diffs (die met + en -) vind ik persoonlijk het makkelijkst lezen en dit is geloof ik ook de meest gangbare vorm. Voor die paar regels die de TS moet aanpassen zou ik gewoon een editor gebruiken en die pid_t __libc_wait (int *status) functie er uit slopen.

  • xzenor
  • Registratie: Maart 2001
  • Laatst online: 14-10-2022

xzenor

Ja doe maar. 1 klontje suiker.

en als ik het goed heb moet je met invoegen van de regels begin vanaf na regel 33..
De patch zou regel 34 t/m 53 moeten bevatten als ik 't goed begrijp.
Pagina: 1