diff mbox

[1/1] xterm: force detection of libICE

Message ID 1437749654-29431-1-git-send-email-bas@bmail.ru
State Changes Requested
Headers show

Commit Message

kyak July 24, 2015, 2:54 p.m. UTC
With some hosts, xterm configure script fails to detect presence of
libICE. This results in error during xterm linking stage, because -lICE
is not passed to linker. This patches forces configure script to detect
libICE.

Signed-off-by: Mikhail Peselnik <bas@bmail.ru>
---
 package/xterm/xterm.mk | 1 +
 1 file changed, 1 insertion(+)

Comments

Yann E. MORIN July 25, 2015, 9:28 p.m. UTC | #1
Mikhail, All,

On 2015-07-24 17:54 +0300, kyak spake thusly:
> With some hosts, xterm configure script fails to detect presence of
> libICE. This results in error during xterm linking stage, because -lICE
> is not passed to linker. This patches forces configure script to detect
> libICE.

Could you share the error message you get, with some mor einfo about
your host that exhibit the issue, please?

Also, a defconfig to reproduce the build would be helpful! ;-)

Regards,
Yann E. MORIN.

> Signed-off-by: Mikhail Peselnik <bas@bmail.ru>
> ---
>  package/xterm/xterm.mk | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/package/xterm/xterm.mk b/package/xterm/xterm.mk
> index 56f692d..dd07e35 100644
> --- a/package/xterm/xterm.mk
> +++ b/package/xterm/xterm.mk
> @@ -11,5 +11,6 @@ XTERM_DEPENDENCIES = ncurses xlib_libXaw
>  XTERM_LICENSE = MIT
>  XTERM_LICENSE_FILES = version.c
>  XTERM_CONF_OPTS = --enable-256-color
> +XTERM_CONF_ENV = ac_cv_lib_ICE_IceConnectionNumber=yes
>  
>  $(eval $(autotools-package))
> -- 
> 2.4.6
> 
> _______________________________________________
> buildroot mailing list
> buildroot@busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot
kyak July 26, 2015, 7:55 a.m. UTC | #2
Hi Yann,

I get the following error:

>>> xterm 314 Building
PATH="/home/user/build/buildroot/output/host/bin:/home/user/build/buildroot/output/host/sbin:/home/user/build/buildroot/output/host/usr/bin:/home/user/build/buildroot/output/host/usr/sbin:/home/user/perl5/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/opt/android-sdk/platform-tools:/usr/lib/jvm/default/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl:/home/user/bin" 
/usr/bin/make -j9  -C /home/user/build/buildroot/output/build/xterm-314/
make[1]: Entering directory 
'/home/user/build/buildroot/output/build/xterm-314'
/bin/sh ./plink.sh 
/home/user/build/buildroot/output/host/usr/bin/i686-buildroot-linux-gnu-gcc 
-D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64   -Os 
-Wl,-rpath,/home/user/build/buildroot/output/host/usr/i686-buildroot-linux-gnu/sysroot/usr/lib 
-o xterm button.o cachedGCs.o charproc.o charsets.o cursor.o data.o 
doublechr.o fontutils.o input.o linedata.o main.o menu.o misc.o print.o 
ptydata.o scrollback.o screen.o scrollbar.o tabs.o util.o version.o 
xstrings.o xtermcap.o VTPrsTbl.o TekPrsTbl.o Tekproc.o charclass.o 
precompose.o wcwidth.o 
-L/home/user/build/buildroot/output/host/usr/i686-buildroot-linux-gnu/sysroot/usr/lib 
-lXft -lfontconfig 
-L/home/user/build/buildroot/output/host/usr/i686-buildroot-linux-gnu/sysroot/usr/lib 
-lfreetype -lutil -lXaw7 -lXmu -lXt -lX11 -lncurses
testing if -lXft is needed
...yes
testing if -lfontconfig is needed
...yes
testing if -lfreetype is needed
...yes
testing if -lutil is needed
...yes
testing if -lXaw7 is needed
...yes
testing if -lXmu is needed
...yes
testing if -lXt is needed
...yes
testing if -lX11 is needed
...yes
testing if -lncurses is needed
...yes
/home/user/build/buildroot/output/host/usr/lib/gcc/i686-buildroot-linux-gnu/4.9.3/../../../../i686-buildroot-linux-gnu/bin/ld: 
misc.o: undefined reference to symbol 'IceConnectionNumber'
/home/user/build/buildroot/output/host/usr/i686-buildroot-linux-gnu/sysroot/usr/lib/libICE.so.6: 
error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status
Makefile:178: recipe for target 'xterm' failed
make[1]: *** [xterm] Error 1
make[1]: Leaving directory 
'/home/user/build/buildroot/output/build/xterm-314'
package/pkg-generic.mk:156: recipe for target 
'/home/user/build/buildroot/output/build/xterm-314/.stamp_built' failed
make: *** [/home/user/build/buildroot/output/build/xterm-314/.stamp_built] 
Error 2

I'm running current Arch Linux.
I don't have a defconfig, but here is the current config:
http://paste.pound-python.org/show/7ptuA3j9NutxLmAjGxgM/

On Sat, 25 Jul 2015, Yann E. MORIN wrote:

> Mikhail, All,
>
> On 2015-07-24 17:54 +0300, kyak spake thusly:
>> With some hosts, xterm configure script fails to detect presence of
>> libICE. This results in error during xterm linking stage, because -lICE
>> is not passed to linker. This patches forces configure script to detect
>> libICE.
>
> Could you share the error message you get, with some mor einfo about
> your host that exhibit the issue, please?
>
> Also, a defconfig to reproduce the build would be helpful! ;-)
>
> Regards,
> Yann E. MORIN.
>
>> Signed-off-by: Mikhail Peselnik <bas@bmail.ru>
>> ---
>>  package/xterm/xterm.mk | 1 +
>>  1 file changed, 1 insertion(+)
>>
>> diff --git a/package/xterm/xterm.mk b/package/xterm/xterm.mk
>> index 56f692d..dd07e35 100644
>> --- a/package/xterm/xterm.mk
>> +++ b/package/xterm/xterm.mk
>> @@ -11,5 +11,6 @@ XTERM_DEPENDENCIES = ncurses xlib_libXaw
>>  XTERM_LICENSE = MIT
>>  XTERM_LICENSE_FILES = version.c
>>  XTERM_CONF_OPTS = --enable-256-color
>> +XTERM_CONF_ENV = ac_cv_lib_ICE_IceConnectionNumber=yes
>>
>>  $(eval $(autotools-package))
>> --
>> 2.4.6
>>
>> _______________________________________________
>> buildroot mailing list
>> buildroot@busybox.net
>> http://lists.busybox.net/mailman/listinfo/buildroot
>
> -- 
> .-----------------.--------------------.------------------.--------------------.
> |  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
> | +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
> | +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
> | http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
> '------------------------------^-------^------------------^--------------------'
>
Yann E. MORIN July 26, 2015, 1:32 p.m. UTC | #3
Mikhail, All,

On 2015-07-26 10:55 +0300, kyak spake thusly:
> I get the following error:
> 
> >>>xterm 314 Building

It would have been more useful to also see the output of the configuring
part, too.

Also, can you look at output/build/xterm-314/config.log why it does not
find libICE?

Otherwise, I'm not able to reproduce this error with your .config... ;-/

Regards,
Yann E. MORIN.
kyak July 26, 2015, 3:49 p.m. UTC | #4
Hi Yann,

Sure, i should've attached this information in the first place. After all, 
i too used it for debugging of this problem.

Full build log: http://paste.pound-python.org/show/dQ2gfhqx7aQMHAQlRVfK/

config.log: http://paste.pound-python.org/show/EsWJPVSwSaYKN2S0UYJH/

Basically, when configure tests for libICE, it attempts to use host search 
path looking for IceConnectionNumber symbol:

"warning: library search path "/usr/lib64" is unsafe for 
cross-compilation"

On Sun, 26 Jul 2015, Yann E. MORIN wrote:

> Mikhail, All,
>
> On 2015-07-26 10:55 +0300, kyak spake thusly:
>> I get the following error:
>>
>>>>> xterm 314 Building
>
> It would have been more useful to also see the output of the configuring
> part, too.
>
> Also, can you look at output/build/xterm-314/config.log why it does not
> find libICE?
>
> Otherwise, I'm not able to reproduce this error with your .config... ;-/
>
> Regards,
> Yann E. MORIN.
>
> -- 
> .-----------------.--------------------.------------------.--------------------.
> |  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
> | +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
> | +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
> | http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
> '------------------------------^-------^------------------^--------------------'
>
Yann E. MORIN July 26, 2015, 4:13 p.m. UTC | #5
Mikhail, All,

[Please, do not top-post]

On 2015-07-26 18:49 +0300, kyak spake thusly:
> Sure, i should've attached this information in the first place. After all, i
> too used it for debugging of this problem.
> 
> Full build log: http://paste.pound-python.org/show/dQ2gfhqx7aQMHAQlRVfK/
> 
> config.log: http://paste.pound-python.org/show/EsWJPVSwSaYKN2S0UYJH/
> 
> Basically, when configure tests for libICE, it attempts to use host search
> path looking for IceConnectionNumber symbol:
> 
> "warning: library search path "/usr/lib64" is unsafe for cross-compilation"

Ah, but then that's what we must fix, instead of forcing detectin of
libICE. So, I'm marking your patch as "Changes Requested" in Patchwork.

Unfortunately, I can't reproduce that leakage on my setup... :-(

Regards,
Yann E. MORIN.
Romain Naour July 26, 2015, 5:14 p.m. UTC | #6
Hi, Mikhail, Yann, All,

Le 26/07/2015 18:13, Yann E. MORIN a écrit :
> Mikhail, All,
> 
> [Please, do not top-post]
> 
> On 2015-07-26 18:49 +0300, kyak spake thusly:
>> Sure, i should've attached this information in the first place. After all, i
>> too used it for debugging of this problem.
>>
>> Full build log: http://paste.pound-python.org/show/dQ2gfhqx7aQMHAQlRVfK/
>>
>> config.log: http://paste.pound-python.org/show/EsWJPVSwSaYKN2S0UYJH/
>>
>> Basically, when configure tests for libICE, it attempts to use host search
>> path looking for IceConnectionNumber symbol:
>>
>> "warning: library search path "/usr/lib64" is unsafe for cross-compilation"
> 
> Ah, but then that's what we must fix, instead of forcing detectin of
> libICE. So, I'm marking your patch as "Changes Requested" in Patchwork.
> 
> Unfortunately, I can't reproduce that leakage on my setup... :-(

Me neither but I made a diff between your build.log and mine:

Yours:
checking for X... libraries /usr/lib64, headers
Mine:
checking for X... libraries , headers

I recommends you to add --x-includes and --x-libraries in xterm.mk:

./configure --help
X features:
  --x-includes=DIR    X include files are in DIR
  --x-libraries=DIR   X library files are in DIR

like we did for libecore package:
http://git.buildroot.net/buildroot/commit/?id=0d9d8984a9240a27f5ed2e15f1977ada67266906

Also it seems that a dependency on freetype is missing

Mine:
freetype-config... /usr/bin/freetype-config
Yours:
checking for FreeType config...
/home/user/build/buildroot/output/host/usr/bin/pkg-config xft

but even with freetype builded before xterm, it still use
/usr/bin/freetype-config... Also, I guess that you don't have freetype installed
on your host.

./configure --help
  --disable-freetype      disable freetype library-support
  --with-freetype-config  configure script to use for FreeType
  --with-freetype-cflags  -D/-I options for compiling with FreeType
  --with-freetype-libs    -L/-l options to link FreeType

So, the xterm package seems incomplete in Buildroot and your initial patch is
not correct.
Can you rework this package by adding (at least) X features options and freetype
options in xterm.mk?

Thanks for your report!

Best regards,
Romain Naour

> 
> Regards,
> Yann E. MORIN.
>
kyak July 26, 2015, 5:47 p.m. UTC | #7
Hi Romain,

It's really great you provided this diff with your setup.
I hope the patch makes sense now.

Thank you!
diff mbox

Patch

diff --git a/package/xterm/xterm.mk b/package/xterm/xterm.mk
index 56f692d..dd07e35 100644
--- a/package/xterm/xterm.mk
+++ b/package/xterm/xterm.mk
@@ -11,5 +11,6 @@  XTERM_DEPENDENCIES = ncurses xlib_libXaw
 XTERM_LICENSE = MIT
 XTERM_LICENSE_FILES = version.c
 XTERM_CONF_OPTS = --enable-256-color
+XTERM_CONF_ENV = ac_cv_lib_ICE_IceConnectionNumber=yes
 
 $(eval $(autotools-package))