[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: How to use an existing cross compiler / boards to make an Emdebian distribution ?



On Thu, 08 Jan 2009 18:29:42 +0800
张增波 <zengbo.zhang@gmail.com> wrote:

> Thank you, Wookey. I make these symlinks, and try
> 
> $emsource -a arm libev
> $cd <source of libev>
> $emdebuild -a arm
> 
> But encounter an error wile executing dh_makeshlibs。 the supplied cross 
> gcc compiler version is 3.4.3 on uclibc 0.9.28, and I use the latest 
> lenny host。
> 
> Do you know why?

uClibc has resulted in a change in the symbols available in the
cross-compiled binaries. This is not something that Emdebian can
currently solve. You will need to implement a way of patching the
relevant symbols file with the results of the changes.

Cross-building Emdebian packages means understanding native building of
Debian packages and how changes will affect the consequences.

I wouldn't want to be working with uClibc for Emdebian at the moment.

>    dh_makeshlibs -a
> dpkg-gensymbols: warning: some symbols disappeared in the symbols file: 

This is a *serious* bug - you have substantially altered the
functionality of the binary. These kinds of issues are not easily
solved during a release freeze in Debian.

If I was building this package with glibc, I would have to work on a
package rename to indicate the altered symbols / modified functionality
- you should probably consider the same. You cannot let this package
retain the name which would then break other package builds.

> see diff output below
> dpkg-gensymbols: warning: debian/libev3/DEBIAN/symbols doesn't match 
> completely debian/libev3.symbols
> --- dpkg-gensymbolssN0mye    2009-01-08 17:33:29.000000000 +0800
> +++ dpkg-gensymbols14LKFu    2009-01-08 17:33:29.000000000 +0800
> @@ -1,84 +1,84 @@
>  libev.so.3 libev3 #MINVER#
> - ev_async_send@Base 3.1
> - ev_async_start@Base 3.1
> - ev_async_stop@Base 3.1
> - ev_backend@Base 3.0
> - ev_check_start@Base 3.0
> - ev_check_stop@Base 3.0
> - ev_child_start@Base 3.0
> - ev_child_stop@Base 3.0
> - ev_clear_pending@Base 3.0
> - ev_default_destroy@Base 3.0
> - ev_default_fork@Base 3.0
> - ev_default_loop_init@Base 3.0
> - ev_default_loop_ptr@Base 3.0
> - ev_embed_start@Base 3.0
> - ev_embed_stop@Base 3.0
> - ev_embed_sweep@Base 3.0
> - ev_embeddable_backends@Base 3.0
> - ev_feed_event@Base 3.0
> - ev_feed_fd_event@Base 3.0
> - ev_feed_signal_event@Base 3.0
> - ev_fork_start@Base 3.0
> - ev_fork_stop@Base 3.0
> - ev_idle_start@Base 3.0
> - ev_idle_stop@Base 3.0
> - ev_invoke@Base 3.0
> - ev_io_start@Base 3.0
> - ev_io_stop@Base 3.0
> - ev_loop@Base 3.0
> - ev_loop_count@Base 3.0
> - ev_loop_destroy@Base 3.0
> - ev_loop_fork@Base 3.0
> - ev_loop_new@Base 3.0
> - ev_loop_verify@Base 3.41
> - ev_now@Base 3.0
> - ev_once@Base 3.0
> - ev_periodic_again@Base 3.0
> - ev_periodic_start@Base 3.0
> - ev_periodic_stop@Base 3.0
> - ev_prepare_start@Base 3.0
> - ev_prepare_stop@Base 3.0
> - ev_recommended_backends@Base 3.0
> - ev_ref@Base 3.0
> - ev_set_allocator@Base 3.0
> - ev_set_io_collect_interval@Base 3.0
> - ev_set_syserr_cb@Base 3.0
> - ev_set_timeout_collect_interval@Base 3.0
> - ev_signal_start@Base 3.0
> - ev_signal_stop@Base 3.0
> - ev_sleep@Base 3.0
> - ev_stat_start@Base 3.0
> - ev_stat_stat@Base 3.0
> - ev_stat_stop@Base 3.0
> - ev_supported_backends@Base 3.0
> - ev_time@Base 3.0
> - ev_timer_again@Base 3.0
> - ev_timer_start@Base 3.0
> - ev_timer_stop@Base 3.0
> - ev_unloop@Base 3.0
> - ev_unref@Base 3.0
> - ev_version_major@Base 3.0
> - ev_version_minor@Base 3.0
> - event_active@Base 3.0
> - event_add@Base 3.0
> - event_base_dispatch@Base 3.0
> - event_base_free@Base 3.0
> - event_base_loop@Base 3.0
> - event_base_loopexit@Base 3.0
> - event_base_once@Base 3.0
> - event_base_priority_init@Base 3.0
> - event_base_set@Base 3.0
> - event_del@Base 3.0
> - event_dispatch@Base 3.0
> - event_get_method@Base 3.0
> - event_get_version@Base 3.0
> - event_init@Base 3.0
> - event_loop@Base 3.0
> - event_loopexit@Base 3.0
> - event_once@Base 3.0
> - event_pending@Base 3.0
> - event_priority_init@Base 3.0
> - event_priority_set@Base 3.0
> - event_set@Base 3.0
> - verify_watcher@Base 3.41
> +#MISSING: 3.43-1.1em1# ev_async_send@Base 3.1
> +#MISSING: 3.43-1.1em1# ev_async_start@Base 3.1
> +#MISSING: 3.43-1.1em1# ev_async_stop@Base 3.1
> +#MISSING: 3.43-1.1em1# ev_backend@Base 3.0
> +#MISSING: 3.43-1.1em1# ev_check_start@Base 3.0
> +#MISSING: 3.43-1.1em1# ev_check_stop@Base 3.0
> +#MISSING: 3.43-1.1em1# ev_child_start@Base 3.0
> +#MISSING: 3.43-1.1em1# ev_child_stop@Base 3.0
> +#MISSING: 3.43-1.1em1# ev_clear_pending@Base 3.0
> +#MISSING: 3.43-1.1em1# ev_default_destroy@Base 3.0
> +#MISSING: 3.43-1.1em1# ev_default_fork@Base 3.0
> +#MISSING: 3.43-1.1em1# ev_default_loop_init@Base 3.0
> +#MISSING: 3.43-1.1em1# ev_default_loop_ptr@Base 3.0
> +#MISSING: 3.43-1.1em1# ev_embed_start@Base 3.0
> +#MISSING: 3.43-1.1em1# ev_embed_stop@Base 3.0
> +#MISSING: 3.43-1.1em1# ev_embed_sweep@Base 3.0
> +#MISSING: 3.43-1.1em1# ev_embeddable_backends@Base 3.0
> +#MISSING: 3.43-1.1em1# ev_feed_event@Base 3.0
> +#MISSING: 3.43-1.1em1# ev_feed_fd_event@Base 3.0
> +#MISSING: 3.43-1.1em1# ev_feed_signal_event@Base 3.0
> +#MISSING: 3.43-1.1em1# ev_fork_start@Base 3.0
> +#MISSING: 3.43-1.1em1# ev_fork_stop@Base 3.0
> +#MISSING: 3.43-1.1em1# ev_idle_start@Base 3.0
> +#MISSING: 3.43-1.1em1# ev_idle_stop@Base 3.0
> +#MISSING: 3.43-1.1em1# ev_invoke@Base 3.0
> +#MISSING: 3.43-1.1em1# ev_io_start@Base 3.0
> +#MISSING: 3.43-1.1em1# ev_io_stop@Base 3.0
> +#MISSING: 3.43-1.1em1# ev_loop@Base 3.0
> +#MISSING: 3.43-1.1em1# ev_loop_count@Base 3.0
> +#MISSING: 3.43-1.1em1# ev_loop_destroy@Base 3.0
> +#MISSING: 3.43-1.1em1# ev_loop_fork@Base 3.0
> +#MISSING: 3.43-1.1em1# ev_loop_new@Base 3.0
> +#MISSING: 3.43-1.1em1# ev_loop_verify@Base 3.41
> +#MISSING: 3.43-1.1em1# ev_now@Base 3.0
> +#MISSING: 3.43-1.1em1# ev_once@Base 3.0
> +#MISSING: 3.43-1.1em1# ev_periodic_again@Base 3.0
> +#MISSING: 3.43-1.1em1# ev_periodic_start@Base 3.0
> +#MISSING: 3.43-1.1em1# ev_periodic_stop@Base 3.0
> +#MISSING: 3.43-1.1em1# ev_prepare_start@Base 3.0
> +#MISSING: 3.43-1.1em1# ev_prepare_stop@Base 3.0
> +#MISSING: 3.43-1.1em1# ev_recommended_backends@Base 3.0
> +#MISSING: 3.43-1.1em1# ev_ref@Base 3.0
> +#MISSING: 3.43-1.1em1# ev_set_allocator@Base 3.0
> +#MISSING: 3.43-1.1em1# ev_set_io_collect_interval@Base 3.0
> +#MISSING: 3.43-1.1em1# ev_set_syserr_cb@Base 3.0
> +#MISSING: 3.43-1.1em1# ev_set_timeout_collect_interval@Base 3.0
> +#MISSING: 3.43-1.1em1# ev_signal_start@Base 3.0
> +#MISSING: 3.43-1.1em1# ev_signal_stop@Base 3.0
> +#MISSING: 3.43-1.1em1# ev_sleep@Base 3.0
> +#MISSING: 3.43-1.1em1# ev_stat_start@Base 3.0
> +#MISSING: 3.43-1.1em1# ev_stat_stat@Base 3.0
> +#MISSING: 3.43-1.1em1# ev_stat_stop@Base 3.0
> +#MISSING: 3.43-1.1em1# ev_supported_backends@Base 3.0
> +#MISSING: 3.43-1.1em1# ev_time@Base 3.0
> +#MISSING: 3.43-1.1em1# ev_timer_again@Base 3.0
> +#MISSING: 3.43-1.1em1# ev_timer_start@Base 3.0
> +#MISSING: 3.43-1.1em1# ev_timer_stop@Base 3.0
> +#MISSING: 3.43-1.1em1# ev_unloop@Base 3.0
> +#MISSING: 3.43-1.1em1# ev_unref@Base 3.0
> +#MISSING: 3.43-1.1em1# ev_version_major@Base 3.0
> +#MISSING: 3.43-1.1em1# ev_version_minor@Base 3.0
> +#MISSING: 3.43-1.1em1# event_active@Base 3.0
> +#MISSING: 3.43-1.1em1# event_add@Base 3.0
> +#MISSING: 3.43-1.1em1# event_base_dispatch@Base 3.0
> +#MISSING: 3.43-1.1em1# event_base_free@Base 3.0
> +#MISSING: 3.43-1.1em1# event_base_loop@Base 3.0
> +#MISSING: 3.43-1.1em1# event_base_loopexit@Base 3.0
> +#MISSING: 3.43-1.1em1# event_base_once@Base 3.0
> +#MISSING: 3.43-1.1em1# event_base_priority_init@Base 3.0
> +#MISSING: 3.43-1.1em1# event_base_set@Base 3.0
> +#MISSING: 3.43-1.1em1# event_del@Base 3.0
> +#MISSING: 3.43-1.1em1# event_dispatch@Base 3.0
> +#MISSING: 3.43-1.1em1# event_get_method@Base 3.0
> +#MISSING: 3.43-1.1em1# event_get_version@Base 3.0
> +#MISSING: 3.43-1.1em1# event_init@Base 3.0
> +#MISSING: 3.43-1.1em1# event_loop@Base 3.0
> +#MISSING: 3.43-1.1em1# event_loopexit@Base 3.0
> +#MISSING: 3.43-1.1em1# event_once@Base 3.0
> +#MISSING: 3.43-1.1em1# event_pending@Base 3.0
> +#MISSING: 3.43-1.1em1# event_priority_init@Base 3.0
> +#MISSING: 3.43-1.1em1# event_priority_set@Base 3.0
> +#MISSING: 3.43-1.1em1# event_set@Base 3.0
> +#MISSING: 3.43-1.1em1# verify_watcher@Base 3.41
> dh_makeshlibs: command returned error code 256
> make: *** [binary-arch] 閿欒 1
> dpkg-buildpackage: failure: fakeroot debian/rules binary gave error exit 
> status 2
> Recording that the package failed to build.
> 


Once Lenny is released, we can look at how this kind of problem can be
resolved but a patch and a package rename is the current solution.


-- 


Neil Williams
=============
http://www.data-freedom.org/
http://www.linux.codehelp.co.uk/
http://e-mail.is-not-s.ms/

Attachment: pgpjfKijyQDgI.pgp
Description: PGP signature


Reply to: