mirror of
https://github.com/openembedded/meta-openembedded.git
synced 2025-07-19 15:29:08 +02:00
tnftp: fix lib32-tnftp build failure with gcc-14
lib32-tnftp do_compile failed with gcc-14: ../../tnftp-20230507/libedit/terminal.c:597:56: error: passing argument 2 of 'terminal_overwrite' from incompatible pointer type [-Wincompatible-pointer-types] 597 | terminal_overwrite(el, &el->el_display[ | ^~~~~~~~~~~~~~~~ | | | wint_t * {aka unsigned int *} 598 | el->el_cursor.v][el->el_cursor.h], | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ../../tnftp-20230507/libedit/refresh.c:114:38: error: initialization of 'wchar_t *' {aka 'long int *'} from incompatible pointer type 'wint_t *' {aka 'unsigned int *'} [-Wincompatible-pointer-types] 114 | wchar_t *firstline = el->el_vdisplay[0]; For 64bit system: wchar_t is defined as int wint_t is define as unsigned int For 32bit system: wchar_t is defined as long int wint_t is define as unsigned int In 64bit case, it works well, but in 32bit case, gcc will take it as incompatible, and report above error Signed-off-by: Changqing Li <changqing.li@windriver.com> Signed-off-by: Khem Raj <raj.khem@gmail.com>
This commit is contained in:
parent
27635c0adc
commit
f6f2fad649
|
@ -0,0 +1,77 @@
|
|||
From 46477eb182af51b5da8299b295a6d61e566e3693 Mon Sep 17 00:00:00 2001
|
||||
From: Changqing Li <changqing.li@windriver.com>
|
||||
Date: Fri, 14 Jun 2024 06:27:19 +0000
|
||||
Subject: [PATCH] Add casts to appease conversions between wchar_t and wint_t
|
||||
|
||||
Upstream-Status: Backport [http://cvsweb.netbsd.org/bsdweb.cgi/src/lib/libedit/refresh.c.diff?r1=1.57&r2=1.58&only_with_tag=MAIN&f=h]
|
||||
|
||||
Signed-off-by: Changqing Li <changqing.li@windriver.com>
|
||||
---
|
||||
libedit/refresh.c | 16 +++++++++-------
|
||||
1 file changed, 9 insertions(+), 7 deletions(-)
|
||||
|
||||
diff --git a/libedit/refresh.c b/libedit/refresh.c
|
||||
index 093f993..a6d4574 100644
|
||||
--- a/libedit/refresh.c
|
||||
+++ b/libedit/refresh.c
|
||||
@@ -111,7 +111,7 @@ re_nextline(EditLine *el)
|
||||
*/
|
||||
if (el->el_refresh.r_cursor.v + 1 >= el->el_terminal.t_size.v) {
|
||||
int i, lins = el->el_terminal.t_size.v;
|
||||
- wchar_t *firstline = el->el_vdisplay[0];
|
||||
+ wint_t *firstline = el->el_vdisplay[0];
|
||||
|
||||
for(i = 1; i < lins; i++)
|
||||
el->el_vdisplay[i - 1] = el->el_vdisplay[i];
|
||||
@@ -340,7 +340,8 @@ re_refresh(EditLine *el)
|
||||
ELRE_DEBUG(1, (__F, "updating %d lines.\r\n", el->el_refresh.r_newcv));
|
||||
for (i = 0; i <= el->el_refresh.r_newcv; i++) {
|
||||
/* NOTE THAT re_update_line MAY CHANGE el_display[i] */
|
||||
- re_update_line(el, el->el_display[i], el->el_vdisplay[i], i);
|
||||
+ re_update_line(el, (wchar_t *)el->el_display[i],
|
||||
+ (wchar_t *)el->el_vdisplay[i], i);
|
||||
|
||||
/*
|
||||
* Copy the new line to be the current one, and pad out with
|
||||
@@ -349,8 +350,9 @@ re_refresh(EditLine *el)
|
||||
* end of the screen line, it won't be a NUL or some old
|
||||
* leftover stuff.
|
||||
*/
|
||||
- re__copy_and_pad(el->el_display[i], el->el_vdisplay[i],
|
||||
- (size_t) el->el_terminal.t_size.h);
|
||||
+ re__copy_and_pad((wchar_t *)el->el_display[i],
|
||||
+ (wchar_t *)el->el_vdisplay[i],
|
||||
+ (size_t) el->el_terminal.t_size.h);
|
||||
}
|
||||
ELRE_DEBUG(1, (__F,
|
||||
"\r\nel->el_refresh.r_cursor.v=%d,el->el_refresh.r_oldcv=%d i=%d\r\n",
|
||||
@@ -361,7 +363,7 @@ re_refresh(EditLine *el)
|
||||
terminal_move_to_line(el, i);
|
||||
terminal_move_to_char(el, 0);
|
||||
/* This wcslen should be safe even with MB_FILL_CHARs */
|
||||
- terminal_clear_EOL(el, (int) wcslen(el->el_display[i]));
|
||||
+ terminal_clear_EOL(el, (int) wcslen((const wchar_t *)el->el_display[i]));
|
||||
#ifdef DEBUG_REFRESH
|
||||
terminal_overwrite(el, L"C\b", 2);
|
||||
#endif /* DEBUG_REFRESH */
|
||||
@@ -1097,7 +1099,7 @@ re_refresh_cursor(EditLine *el)
|
||||
static void
|
||||
re_fastputc(EditLine *el, wint_t c)
|
||||
{
|
||||
- wchar_t *lastline;
|
||||
+ wint_t *lastline;
|
||||
int w;
|
||||
|
||||
w = wcwidth(c);
|
||||
@@ -1132,7 +1134,7 @@ re_fastputc(EditLine *el, wint_t c)
|
||||
el->el_cursor.v++;
|
||||
lastline = el->el_display[++el->el_refresh.r_oldcv];
|
||||
}
|
||||
- re__copy_and_pad(lastline, L"", (size_t)el->el_terminal.t_size.h);
|
||||
+ re__copy_and_pad((wchar_t *)lastline, L"", (size_t)el->el_terminal.t_size.h);
|
||||
|
||||
if (EL_HAS_AUTO_MARGINS) {
|
||||
if (EL_HAS_MAGIC_MARGINS) {
|
||||
--
|
||||
2.35.5
|
||||
|
|
@ -0,0 +1,29 @@
|
|||
From 5c8334f86d139de987c716a0d5acc0f40d8d3b7d Mon Sep 17 00:00:00 2001
|
||||
From: Changqing Li <changqing.li@windriver.com>
|
||||
Date: Fri, 14 Jun 2024 06:38:37 +0000
|
||||
Subject: [PATCH] Add casts to appease conversions between wchar_t and wint_t
|
||||
|
||||
Upstream-Status: Backport [http://cvsweb.netbsd.org/bsdweb.cgi/src/lib/libedit/terminal.c.diff?r1=1.43&r2=1.44&only_with_tag=MAIN&f=h]
|
||||
|
||||
Signed-off-by: Changqing Li <changqing.li@windriver.com>
|
||||
---
|
||||
libedit/terminal.c | 3 ++-
|
||||
1 file changed, 2 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/libedit/terminal.c b/libedit/terminal.c
|
||||
index 19cee48..13f7bcd 100644
|
||||
--- a/libedit/terminal.c
|
||||
+++ b/libedit/terminal.c
|
||||
@@ -594,7 +594,8 @@ mc_again:
|
||||
* NOTE THAT terminal_overwrite() WILL CHANGE
|
||||
* el->el_cursor.h!!!
|
||||
*/
|
||||
- terminal_overwrite(el, &el->el_display[
|
||||
+ terminal_overwrite(el,
|
||||
+ (wchar_t *)&el->el_display[
|
||||
el->el_cursor.v][el->el_cursor.h],
|
||||
(size_t)(where - el->el_cursor.h));
|
||||
|
||||
--
|
||||
2.35.5
|
||||
|
|
@ -16,6 +16,8 @@ DEPENDS = "ncurses"
|
|||
|
||||
SRC_URI = "https://ftp.netbsd.org/pub/NetBSD/misc/tnftp/${BPN}-${PV}.tar.gz \
|
||||
file://0001-libedit-Include-missing-header-stdc-predef.h.patch \
|
||||
file://0001-Add-casts-to-appease-conversions-between-wchar_t-and.patch \
|
||||
file://0002-Add-casts-to-appease-conversions-between-wchar_t-and.patch \
|
||||
"
|
||||
|
||||
inherit autotools update-alternatives pkgconfig
|
||||
|
|
Loading…
Reference in New Issue
Block a user