Re: [PATCH] unicore32: Fix build error

From: Richard Weinberger
Date: Sun Aug 10 2014 - 11:39:51 EST


Guenther,

Am 10.08.2014 17:29, schrieb Guenter Roeck:
> unicore32 builds fail with
>
> arch/unicore32/kernel/signal.c: In function âsetup_frameâ:
> arch/unicore32/kernel/signal.c:257: error:
> âusigâ undeclared (first use in this function)
> arch/unicore32/kernel/signal.c:279: error:
> âusigâ undeclared (first use in this function)
> arch/unicore32/kernel/signal.c: In function âhandle_signalâ:
> arch/unicore32/kernel/signal.c:306: warning: unused variable âtskâ
> arch/unicore32/kernel/signal.c: In function âdo_signalâ:
> arch/unicore32/kernel/signal.c:376: error:
> implicit declaration of function âget_signslâ
> make[1]: *** [arch/unicore32/kernel/signal.o] Error 1
> make: *** [arch/unicore32/kernel/signal.o] Error 2
>
> Bisect points to commit 649671c90eaf ("unicore32: Use get_signal()
> signal_setup_done()").
>
> This code never even compiled. Reverting the patch does not work,
> since previously used functions no longer exist, so try to fix it up.
> Compile tested only.

Where did you get the unicore32 cross compiler from?

The collection on kernel.org is missing it:
https://www.kernel.org/pub/tools/crosstool/

This is why it did not get any build testing.

Thanks,
//richard

> Cc: Richard Weinberger <richard@xxxxxx>
> Signed-off-by: Guenter Roeck <linux@xxxxxxxxxxxx>
> ---
> arch/unicore32/kernel/signal.c | 9 +++++----
> 1 file changed, 5 insertions(+), 4 deletions(-)
>
> diff --git a/arch/unicore32/kernel/signal.c b/arch/unicore32/kernel/signal.c
> index 780d773..7c8fb70 100644
> --- a/arch/unicore32/kernel/signal.c
> +++ b/arch/unicore32/kernel/signal.c
> @@ -254,7 +254,8 @@ static int setup_frame(struct ksignal *ksig, sigset_t *set,
>
> err |= setup_sigframe(frame, regs, set);
> if (err == 0)
> - err |= setup_return(regs, &ksig->ka, frame->retcode, frame, usig);
> + err |= setup_return(regs, &ksig->ka, frame->retcode, frame,
> + ksig->sig);
>
> return err;
> }
> @@ -276,7 +277,8 @@ static int setup_rt_frame(struct ksignal *ksig, sigset_t *set,
> err |= __save_altstack(&frame->sig.uc.uc_stack, regs->UCreg_sp);
> err |= setup_sigframe(&frame->sig, regs, set);
> if (err == 0)
> - err |= setup_return(regs, &ksig->ka, frame->sig.retcode, frame, usig);
> + err |= setup_return(regs, &ksig->ka, frame->sig.retcode, frame,
> + ksig->sig);
>
> if (err == 0) {
> /*
> @@ -303,7 +305,6 @@ static void handle_signal(struct ksignal *ksig, struct pt_regs *regs,
> int syscall)
> {
> struct thread_info *thread = current_thread_info();
> - struct task_struct *tsk = current;
> sigset_t *oldset = sigmask_to_save();
> int usig = ksig->sig;
> int ret;
> @@ -373,7 +374,7 @@ static void do_signal(struct pt_regs *regs, int syscall)
> if (!user_mode(regs))
> return;
>
> - if (get_signsl(&ksig)) {
> + if (get_signal(&ksig)) {
> handle_signal(&ksig, regs, syscall);
> return;
> }
>
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/