Why does patch not find this file?

27,700

There are three file paths involved here:

  • The patch's original file: u-boot-2013.01/arch/powerpc/cpu/mpc85xx/cpu_init.c
  • The patch's target file: u-boot-2013.01.modified/arch/powerpc/cpu/mpc85xx/cpu_init.c
  • The stripped target file due to -p1: arch/powerpc/cpu/mpc85xx/cpu_init.c

Patch looks for the stripped target file, and it doesn't exist.

cd u-boot-2013.01 and then patch -p1 < ../../u-boot/u-boot-2013.01-wr.patch, and you should have more luck.

Share:
27,700
stdcerr
Author by

stdcerr

Coding mostly on embedded systems (24/7/365 uptime) to make a living at daytime, coding on a variety of systems (x86, arm) for fun at nighttime, preferences: Linux, C &amp; C++. Always interested in learning other ways/better ways to solve problems!

Updated on July 19, 2022

Comments

  • stdcerr
    stdcerr almost 2 years

    I would like to apply a patch to the u-boot sources but some how, Linux doesn't let me. What I have:

    reg@ubuntu:~/NextGen/trunk/FW/thirdparty/u-boot$ patch -p1 < ../u-boot/u-boot-2013.01-wr.patch 
    can't find file to patch at input line 4
    Perhaps you used the wrong -p or --strip option?
    The text leading up to this was:
    --------------------------
    |diff -uNr u-boot-2013.01/arch/powerpc/cpu/mpc85xx/cpu_init.c u-boot-2013.01.modified/arch/powerpc/cpu/mpc85xx/cpu_init.c
    |--- u-boot-2013.01/arch/powerpc/cpu/mpc85xx/cpu_init.c 2013-01-15 13:47:42.000000000 -0800
    |+++ u-boot-2013.01.modified/arch/powerpc/cpu/mpc85xx/cpu_init.c        2013-05-16 10:58:08.973906692 -0700
    --------------------------
    File to patch: ^C
    reg@ubuntu:~/NextGen/trunk/FW/thirdparty/u-boot$ ls -l u-boot-2013.01/arch/powerpc/cpu/mpc85xx/cpu_init.c
    -rw-r--r-- 1 reg reg 16745 Jan 15  2013 u-boot-2013.01/arch/powerpc/cpu/mpc85xx/cpu_init.c
    reg@ubuntu:~/NextGen/trunk/FW/thirdparty/u-boot$ 
    

    So why can it not find the file when it's perfectly at the right location? What's going on here?