All of lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] Implicit declaration of mblen
@ 2017-10-21 11:10 Kees van Unen
  2017-10-21 16:26 ` Peter Korsgaard
  0 siblings, 1 reply; 11+ messages in thread
From: Kees van Unen @ 2017-10-21 11:10 UTC (permalink / raw)
  To: buildroot

Hi,

I am using buildroot-2017.08 and I want to use X.org. When compiling
xlib_libX11-1.6.5 there is an error in imCallbk.c: implicit declaration of
function mblen. By adding a -I reference to CFLAGS in the relevant Makefile
to stdlib.h this source compiles. This happens for a number of X11 sources.
Does anybody knows how this can be solved with Buildroot?

The mblen bug also appears later on in the process when it tries to use
xlib_libx.so.

Thank you.




--
Sent from: http://buildroot-busybox.2317881.n4.nabble.com/

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [Buildroot] Implicit declaration of mblen
  2017-10-21 11:10 [Buildroot] Implicit declaration of mblen Kees van Unen
@ 2017-10-21 16:26 ` Peter Korsgaard
  2017-10-21 20:44   ` Kees van Unen
  0 siblings, 1 reply; 11+ messages in thread
From: Peter Korsgaard @ 2017-10-21 16:26 UTC (permalink / raw)
  To: buildroot

>>>>> "Kees" == Kees van Unen <Keesvanunen@hotmail.com> writes:

 > Hi,
 > I am using buildroot-2017.08 and I want to use X.org. When compiling
 > xlib_libX11-1.6.5 there is an error in imCallbk.c: implicit declaration of
 > function mblen. By adding a -I reference to CFLAGS in the relevant Makefile
 > to stdlib.h this source compiles. This happens for a number of X11 sources.
 > Does anybody knows how this can be solved with Buildroot?

 > The mblen bug also appears later on in the process when it tries to use
 > xlib_libx.so.

The cross compiler should find stdlib.h without any special -I
flags. Can you post your defconfig file (run make savedefconfig to
generate it) and the exact error message you are seeing?

-- 
Bye, Peter Korsgaard

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [Buildroot] Implicit declaration of mblen
  2017-10-21 16:26 ` Peter Korsgaard
@ 2017-10-21 20:44   ` Kees van Unen
  2017-10-21 20:56     ` Arnout Vandecappelle
  0 siblings, 1 reply; 11+ messages in thread
From: Kees van Unen @ 2017-10-21 20:44 UTC (permalink / raw)
  To: buildroot

raspberrypi0_defconfig.raspberrypi0_defconfig
<http://buildroot-busybox.2317881.n4.nabble.com/file/t2263/raspberrypi0_defconfig.raspberrypi0_defconfig>  

mblen_error.mblen_error
<http://buildroot-busybox.2317881.n4.nabble.com/file/t2263/mblen_error.mblen_error>  

Hi Peter,

Thanks for your response. Uploaded defconfig en file with the error message.
Thanks.

Bye,
Kees



--
Sent from: http://buildroot-busybox.2317881.n4.nabble.com/

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [Buildroot] Implicit declaration of mblen
  2017-10-21 20:44   ` Kees van Unen
@ 2017-10-21 20:56     ` Arnout Vandecappelle
  2017-10-21 21:07       ` Kees van Unen
  0 siblings, 1 reply; 11+ messages in thread
From: Arnout Vandecappelle @ 2017-10-21 20:56 UTC (permalink / raw)
  To: buildroot



On 21-10-17 22:44, Kees van Unen wrote:
> raspberrypi0_defconfig.raspberrypi0_defconfig
> <http://buildroot-busybox.2317881.n4.nabble.com/file/t2263/raspberrypi0_defconfig.raspberrypi0_defconfig>  

 This line looks pretty suspicious:

BR2_EXTRA_GCC_CONFIG_OPTIONS="-I/home/pi/Downloads/buildroot-2017.08/output/host/bassie"

 Maybe that causes a wrong stlib.h somewhere?

 Regards,
 Arnout

> 
> mblen_error.mblen_error
> <http://buildroot-busybox.2317881.n4.nabble.com/file/t2263/mblen_error.mblen_error>  
> 
> Hi Peter,
> 
> Thanks for your response. Uploaded defconfig en file with the error message.
> Thanks.
> 
> Bye,
> Kees
> 
> 
> 
> --
> Sent from: http://buildroot-busybox.2317881.n4.nabble.com/
> _______________________________________________
> buildroot mailing list
> buildroot at busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot
> 

-- 
Arnout Vandecappelle                          arnout at mind be
Senior Embedded Software Architect            +32-16-286500
Essensium/Mind                                http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium           BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint:  7493 020B C7E3 8618 8DEC 222C 82EB F404 F9AC 0DDF

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [Buildroot] Implicit declaration of mblen
  2017-10-21 20:56     ` Arnout Vandecappelle
@ 2017-10-21 21:07       ` Kees van Unen
  2017-10-22 10:02         ` Arnout Vandecappelle
  0 siblings, 1 reply; 11+ messages in thread
From: Kees van Unen @ 2017-10-21 21:07 UTC (permalink / raw)
  To: buildroot

> This line looks pretty suspicious: 

>BR2_EXTRA_GCC_CONFIG_OPTIONS="-I/home/pi/Downloads/buildroot-2017.08/output/host/bassie" 

> Maybe that causes a wrong stlib.h somewhere? 

Quoted line was leftover from test. Uploaded new defconfig with same issue.

Kees

mblen_error.mblen_error
<http://buildroot-busybox.2317881.n4.nabble.com/file/t2263/mblen_error.mblen_error>  
raspberrypi0_defconfig.raspberrypi0_defconfig
<http://buildroot-busybox.2317881.n4.nabble.com/file/t2263/raspberrypi0_defconfig.raspberrypi0_defconfig>  




--
Sent from: http://buildroot-busybox.2317881.n4.nabble.com/

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [Buildroot] Implicit declaration of mblen
  2017-10-21 21:07       ` Kees van Unen
@ 2017-10-22 10:02         ` Arnout Vandecappelle
  2017-10-22 13:34           ` Kees van Unen
  2017-10-23 16:11           ` Kees van Unen
  0 siblings, 2 replies; 11+ messages in thread
From: Arnout Vandecappelle @ 2017-10-22 10:02 UTC (permalink / raw)
  To: buildroot



On 21-10-17 23:07, Kees van Unen wrote:
>> This line looks pretty suspicious: 
> 
>> BR2_EXTRA_GCC_CONFIG_OPTIONS="-I/home/pi/Downloads/buildroot-2017.08/output/host/bassie" 
> 
>> Maybe that causes a wrong stlib.h somewhere? 
> 
> Quoted line was leftover from test. Uploaded new defconfig with same issue.
> 
> Kees
> 
> mblen_error.mblen_error
> <http://buildroot-busybox.2317881.n4.nabble.com/file/t2263/mblen_error.mblen_error>  
> raspberrypi0_defconfig.raspberrypi0_defconfig
> <http://buildroot-busybox.2317881.n4.nabble.com/file/t2263/raspberrypi0_defconfig.raspberrypi0_defconfig>  

 Hm, I tried that defconfig and it works for me...

 Copy the the make command line from the xlib_libX11, append V=1 to it, and
you'll see the compilation commands. Copy the compilation command for the
failing file, replace the -c with -E and the -o with some filename, so you get
the preprocessed file. Then in that preprocessed file check which stdlib.h it
includes. stdlib.h should be included from include/X11/Xlibint.h.

 Regards,
 Arnout

-- 
Arnout Vandecappelle                          arnout at mind be
Senior Embedded Software Architect            +32-16-286500
Essensium/Mind                                http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium           BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint:  7493 020B C7E3 8618 8DEC 222C 82EB F404 F9AC 0DDF

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [Buildroot] Implicit declaration of mblen
  2017-10-22 10:02         ` Arnout Vandecappelle
@ 2017-10-22 13:34           ` Kees van Unen
  2017-10-23 16:11           ` Kees van Unen
  1 sibling, 0 replies; 11+ messages in thread
From: Kees van Unen @ 2017-10-22 13:34 UTC (permalink / raw)
  To: buildroot

> Copy the the make command line from the xlib_libX11, append V=1 to it, and 
> you'll see the compilation commands. Copy the compilation command for the 
> failing file, replace the -c with -E and the -o with some filename, so you
> get 
> the preprocessed file. Then in that preprocessed file check which stdlib.h
> it 
>  includes. stdlib.h should be included from include/X11/Xlibint.h. 

Need some more help... When following steps above the following error
appears:

fatal error: cannot specify -o with -c, -S or -E with multiple files.

I noticed that when executing abc_new the options -fPIC -DPIC -o
.libs/imCallbk.o were automatically placed behind the compilation command

abc_old is initial compilation command
abc_new is adjusted compilation command to obtain preprocessed file

abc_old.abc_old
<http://buildroot-busybox.2317881.n4.nabble.com/file/t2263/abc_old.abc_old>  
abc_new.abc_new
<http://buildroot-busybox.2317881.n4.nabble.com/file/t2263/abc_new.abc_new>  



--
Sent from: http://buildroot-busybox.2317881.n4.nabble.com/

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [Buildroot] Implicit declaration of mblen
  2017-10-22 10:02         ` Arnout Vandecappelle
  2017-10-22 13:34           ` Kees van Unen
@ 2017-10-23 16:11           ` Kees van Unen
  2017-10-23 18:33             ` Peter Seiderer
  1 sibling, 1 reply; 11+ messages in thread
From: Kees van Unen @ 2017-10-23 16:11 UTC (permalink / raw)
  To: buildroot

> Copy the the make command line from the xlib_libX11, append V=1 to it, and 
> you'll see the compilation commands. Copy the compilation command for the 
> failing file, replace the -c with -E and the -o with some filename, so you
> get 
> the preprocessed file. Then in that preprocessed file check which stdlib.h
> it 
> includes. stdlib.h should be included from include/X11/Xlibint.h. 

Hi, I managed to get the preprocessor file (see uploaded file). It includes
the next stdlib.h:

output/host/arm-buildroot-linux-uclibc/gnueabihf/sysroot/usr/include/stdlib.h

In this version of stdlib.h there is no reference to mblen (see uploaded
file).

Regards,
Kees

imCallbk.o
<http://buildroot-busybox.2317881.n4.nabble.com/file/t2263/imCallbk.o>  
stdlib.h
<http://buildroot-busybox.2317881.n4.nabble.com/file/t2263/stdlib.h>  






--
Sent from: http://buildroot-busybox.2317881.n4.nabble.com/

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [Buildroot] Implicit declaration of mblen
  2017-10-23 16:11           ` Kees van Unen
@ 2017-10-23 18:33             ` Peter Seiderer
  2017-10-23 19:08               ` Arnout Vandecappelle
  0 siblings, 1 reply; 11+ messages in thread
From: Peter Seiderer @ 2017-10-23 18:33 UTC (permalink / raw)
  To: buildroot

Hello Kees,

On Mon, 23 Oct 2017 09:11:35 -0700 (MST), Kees van Unen <Keesvanunen@hotmail.com> wrote:

> > Copy the the make command line from the xlib_libX11, append V=1 to it, and 
> > you'll see the compilation commands. Copy the compilation command for the 
> > failing file, replace the -c with -E and the -o with some filename, so you
> > get 
> > the preprocessed file. Then in that preprocessed file check which stdlib.h
> > it 
> > includes. stdlib.h should be included from include/X11/Xlibint.h.   
> 
> Hi, I managed to get the preprocessor file (see uploaded file). It includes
> the next stdlib.h:
> 
> output/host/arm-buildroot-linux-uclibc/gnueabihf/sysroot/usr/include/stdlib.h
> 
> In this version of stdlib.h there is no reference to mblen (see uploaded
> file).
> 
> Regards,
> Kees
> 
> imCallbk.o
> <http://buildroot-busybox.2317881.n4.nabble.com/file/t2263/imCallbk.o>  
> stdlib.h
> <http://buildroot-busybox.2317881.n4.nabble.com/file/t2263/stdlib.h>  
> 

Compared against local build (git master):

seiderer at localhost:~/Work/Buildroot/build-rpi0-xlib_libX11-1.6.5-mblen-error-001> wget http://buildroot-busybox.2317881.n4.nabble.com/file/t2263/stdlib.h
seiderer at localhost:~/Work/Buildroot/build-rpi0-xlib_libX11-1.6.5-mblen-error-001> diff -u stdlib.h ./host/arm-buildroot-linux-uclibcgnueabihf/sysroot/usr/include/stdlib.h
--- stdlib.h	2017-10-23 20:17:01.351394515 +0200
+++ ./host/arm-buildroot-linux-uclibcgnueabihf/sysroot/usr/include/stdlib.h	2017-10-21 23:29:09.028752219 +0200
@@ -26,6 +26,7 @@
 /* Get size_t, wchar_t and NULL from <stddef.h>.  */
 #define		__need_size_t
 #ifndef __need_malloc_and_calloc
+#  define	__need_wchar_t
 # define	__need_NULL
 #endif
 #include <stddef.h>
@@ -138,7 +139,8 @@
 #define	MB_CUR_MAX	(__ctype_get_mb_cur_max ())
 extern size_t __ctype_get_mb_cur_max (void) __THROW __wur;
 #else
-# define	MB_CUR_MAX	1
+# define	MB_CUR_MAX	(_stdlib_mb_cur_max ())
+extern size_t _stdlib_mb_cur_max (void) __THROW __wur;
 #endif
 
 
@@ -825,6 +827,29 @@
 #endif	/* use MISC || use X/Open Unix */
 
 
+__BEGIN_NAMESPACE_STD
+/* Return the length of the multibyte character
+   in S, which is no longer than N.  */
+extern int mblen (const char *__s, size_t __n) __THROW __wur;
+/* Return the length of the given multibyte character,
+   putting its `wchar_t' representation in *PWC.  */
+extern int mbtowc (wchar_t *__restrict __pwc,
+		   const char *__restrict __s, size_t __n) __THROW __wur;
+/* Put the multibyte character represented
+   by WCHAR in S, returning its length.  */
+extern int wctomb (char *__s, wchar_t __wchar) __THROW __wur;
+
+
+/* Convert a multibyte string to a wide char string.  */
+extern size_t mbstowcs (wchar_t *__restrict  __pwcs,
+			const char *__restrict __s, size_t __n) __THROW;
+/* Convert a wide char string to multibyte string.  */
+extern size_t wcstombs (char *__restrict __s,
+			const wchar_t *__restrict __pwcs, size_t __n)
+     __THROW;
+__END_NAMESPACE_STD
+
+
 #ifdef __USE_SVID
 /* Determine whether the string value of RESPONSE matches the affirmation
    or negative response expression as specified by the LC_MESSAGES category

Regards,
Peter

> 
> 
> 
> 
> 
> --
> Sent from: http://buildroot-busybox.2317881.n4.nabble.com/
> _______________________________________________
> buildroot mailing list
> buildroot at busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [Buildroot] Implicit declaration of mblen
  2017-10-23 18:33             ` Peter Seiderer
@ 2017-10-23 19:08               ` Arnout Vandecappelle
  2017-10-24  5:34                 ` Kees van Unen
  0 siblings, 1 reply; 11+ messages in thread
From: Arnout Vandecappelle @ 2017-10-23 19:08 UTC (permalink / raw)
  To: buildroot



On 23-10-17 20:33, Peter Seiderer wrote:
> Hello Kees,
> 
> On Mon, 23 Oct 2017 09:11:35 -0700 (MST), Kees van Unen <Keesvanunen@hotmail.com> wrote:
> 
>>> Copy the the make command line from the xlib_libX11, append V=1 to it, and 
>>> you'll see the compilation commands. Copy the compilation command for the 
>>> failing file, replace the -c with -E and the -o with some filename, so you
>>> get 
>>> the preprocessed file. Then in that preprocessed file check which stdlib.h
>>> it 
>>> includes. stdlib.h should be included from include/X11/Xlibint.h.   
>>
>> Hi, I managed to get the preprocessor file (see uploaded file). It includes
>> the next stdlib.h:
>>
>> output/host/arm-buildroot-linux-uclibc/gnueabihf/sysroot/usr/include/stdlib.h
>>
>> In this version of stdlib.h there is no reference to mblen (see uploaded
>> file).
>>
>> Regards,
>> Kees
>>
>> imCallbk.o
>> <http://buildroot-busybox.2317881.n4.nabble.com/file/t2263/imCallbk.o>  
>> stdlib.h
>> <http://buildroot-busybox.2317881.n4.nabble.com/file/t2263/stdlib.h>  
>>
> 
> Compared against local build (git master):
> 
> seiderer at localhost:~/Work/Buildroot/build-rpi0-xlib_libX11-1.6.5-mblen-error-001> wget http://buildroot-busybox.2317881.n4.nabble.com/file/t2263/stdlib.h
> seiderer at localhost:~/Work/Buildroot/build-rpi0-xlib_libX11-1.6.5-mblen-error-001> diff -u stdlib.h ./host/arm-buildroot-linux-uclibcgnueabihf/sysroot/usr/include/stdlib.h
> --- stdlib.h	2017-10-23 20:17:01.351394515 +0200
> +++ ./host/arm-buildroot-linux-uclibcgnueabihf/sysroot/usr/include/stdlib.h	2017-10-21 23:29:09.028752219 +0200
> @@ -26,6 +26,7 @@
>  /* Get size_t, wchar_t and NULL from <stddef.h>.  */
>  #define		__need_size_t
>  #ifndef __need_malloc_and_calloc
> +#  define	__need_wchar_t
>  # define	__need_NULL
>  #endif
>  #include <stddef.h>
> @@ -138,7 +139,8 @@
>  #define	MB_CUR_MAX	(__ctype_get_mb_cur_max ())
>  extern size_t __ctype_get_mb_cur_max (void) __THROW __wur;
>  #else
> -# define	MB_CUR_MAX	1
> +# define	MB_CUR_MAX	(_stdlib_mb_cur_max ())
> +extern size_t _stdlib_mb_cur_max (void) __THROW __wur;
>  #endif
>  
>  
> @@ -825,6 +827,29 @@
>  #endif	/* use MISC || use X/Open Unix */
>  
>  
> +__BEGIN_NAMESPACE_STD
> +/* Return the length of the multibyte character
> +   in S, which is no longer than N.  */
> +extern int mblen (const char *__s, size_t __n) __THROW __wur;
> +/* Return the length of the given multibyte character,
> +   putting its `wchar_t' representation in *PWC.  */
> +extern int mbtowc (wchar_t *__restrict __pwc,
> +		   const char *__restrict __s, size_t __n) __THROW __wur;
> +/* Put the multibyte character represented
> +   by WCHAR in S, returning its length.  */
> +extern int wctomb (char *__s, wchar_t __wchar) __THROW __wur;
> +
> +
> +/* Convert a multibyte string to a wide char string.  */
> +extern size_t mbstowcs (wchar_t *__restrict  __pwcs,
> +			const char *__restrict __s, size_t __n) __THROW;
> +/* Convert a wide char string to multibyte string.  */
> +extern size_t wcstombs (char *__restrict __s,
> +			const wchar_t *__restrict __pwcs, size_t __n)
> +     __THROW;
> +__END_NAMESPACE_STD

 Right, so this is the bit that gets removed when BR2_TOOLCHAIN_BUILDROOT_WCHAR
is not set.

 Kees, is it possible that you changed the toolchain configuration and did not
do a 'make clean'? [1]

 [Rule 1 when somebody comes with a problem: did you do a make clean?]


 Regards,
 Arnout

[1] https://buildroot.org/downloads/manual/manual.html#full-rebuild

> +
> +
>  #ifdef __USE_SVID
>  /* Determine whether the string value of RESPONSE matches the affirmation
>     or negative response expression as specified by the LC_MESSAGES category
> 
> Regards,
> Peter
> 
>>
>>
>>
>>
>>
>> --
>> Sent from: http://buildroot-busybox.2317881.n4.nabble.com/
>> _______________________________________________
>> buildroot mailing list
>> buildroot at busybox.net
>> http://lists.busybox.net/mailman/listinfo/buildroot
> 
> _______________________________________________
> buildroot mailing list
> buildroot at busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot
> 

-- 
Arnout Vandecappelle                          arnout at mind be
Senior Embedded Software Architect            +32-16-286500
Essensium/Mind                                http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium           BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint:  7493 020B C7E3 8618 8DEC 222C 82EB F404 F9AC 0DDF

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [Buildroot] Implicit declaration of mblen
  2017-10-23 19:08               ` Arnout Vandecappelle
@ 2017-10-24  5:34                 ` Kees van Unen
  0 siblings, 0 replies; 11+ messages in thread
From: Kees van Unen @ 2017-10-24  5:34 UTC (permalink / raw)
  To: buildroot

> Kees, is it possible that you changed the toolchain configuration and did
not 
> do a 'make clean'? [1] 

Thanks guys. It is very well possible that I didn't do a make clean. I will
do it now and try again.

Regards,
Kees




--
Sent from: http://buildroot-busybox.2317881.n4.nabble.com/

^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2017-10-24  5:34 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-10-21 11:10 [Buildroot] Implicit declaration of mblen Kees van Unen
2017-10-21 16:26 ` Peter Korsgaard
2017-10-21 20:44   ` Kees van Unen
2017-10-21 20:56     ` Arnout Vandecappelle
2017-10-21 21:07       ` Kees van Unen
2017-10-22 10:02         ` Arnout Vandecappelle
2017-10-22 13:34           ` Kees van Unen
2017-10-23 16:11           ` Kees van Unen
2017-10-23 18:33             ` Peter Seiderer
2017-10-23 19:08               ` Arnout Vandecappelle
2017-10-24  5:34                 ` Kees van Unen

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.