* [Buildroot] [PATCH 1/1] shadowsocks-libev: add dependency on BR2_TOOLCHAIN_HAS_SYNC_4 @ 2018-06-07 23:01 Min Xu 2018-06-08 9:45 ` Arnout Vandecappelle 0 siblings, 1 reply; 4+ messages in thread From: Min Xu @ 2018-06-07 23:01 UTC (permalink / raw) To: buildroot To fixup linking errors: "undefined reference to `__sync_val_compare_and_swap_4'" Fixes http://autobuild.buildroot.net/results/d00c5f9e1e7a6a40fac5763a06977b351b7875da http://autobuild.buildroot.net/results/0612f2dc09a8763fdf2111ee8d0c223c8531262a reference: https://git.buildroot.org/buildroot/commit/?id=7c77d965bdcd301c2644004140faec613c1ee202 Signed-off-by: Min Xu <xuminready@gmail.com> --- package/shadowsocks-libev/Config.in | 2 ++ 1 file changed, 2 insertions(+) diff --git a/package/shadowsocks-libev/Config.in b/package/shadowsocks-libev/Config.in index d02e5a93ef..c914ed778b 100644 --- a/package/shadowsocks-libev/Config.in +++ b/package/shadowsocks-libev/Config.in @@ -1,5 +1,7 @@ config BR2_PACKAGE_SHADOWSOCKS_LIBEV bool "shadowsocks-libev" + # uses __sync_val_compare_and_swap_4 + depends on BR2_TOOLCHAIN_HAS_SYNC_4 depends on BR2_USE_MMU # fork() select BR2_PACKAGE_C_ARES select BR2_PACKAGE_LIBEV -- 2.11.0 ^ permalink raw reply related [flat|nested] 4+ messages in thread
* [Buildroot] [PATCH 1/1] shadowsocks-libev: add dependency on BR2_TOOLCHAIN_HAS_SYNC_4 2018-06-07 23:01 [Buildroot] [PATCH 1/1] shadowsocks-libev: add dependency on BR2_TOOLCHAIN_HAS_SYNC_4 Min Xu @ 2018-06-08 9:45 ` Arnout Vandecappelle [not found] ` <CAMpS7mRvt1Mpt0faz7kMetV92XwYTojD_aFx1iZ-UGSJ8gbq1A@mail.gmail.com> 0 siblings, 1 reply; 4+ messages in thread From: Arnout Vandecappelle @ 2018-06-08 9:45 UTC (permalink / raw) To: buildroot Hi Min, Thank you for your speedy reaction! On 08-06-18 01:01, Min Xu wrote: > To fixup linking errors: > "undefined reference to `__sync_val_compare_and_swap_4'" > Fixes > http://autobuild.buildroot.net/results/d00c5f9e1e7a6a40fac5763a06977b351b7875da > http://autobuild.buildroot.net/results/0612f2dc09a8763fdf2111ee8d0c223c8531262a > > reference: https://git.buildroot.org/buildroot/commit/?id=7c77d965bdcd301c2644004140faec613c1ee202 No need for this - it's actually confusing, I thought you meant that the dependency was indirect due to libuv (as is the case in that commit). > Signed-off-by: Min Xu <xuminready@gmail.com> > --- > package/shadowsocks-libev/Config.in | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/package/shadowsocks-libev/Config.in b/package/shadowsocks-libev/Config.in > index d02e5a93ef..c914ed778b 100644 > --- a/package/shadowsocks-libev/Config.in > +++ b/package/shadowsocks-libev/Config.in > @@ -1,5 +1,7 @@ > config BR2_PACKAGE_SHADOWSOCKS_LIBEV > bool "shadowsocks-libev" > + # uses __sync_val_compare_and_swap_4 It actually uses the __sync_val_compare_and_swap macro, so the actual function that is called depends on sizeof(int) and sizeof(void*)... > + depends on BR2_TOOLCHAIN_HAS_SYNC_4 ... so I think we also need depends on BR2_TOOLCHAIN_HAS_SYNC_8 if BR2_ARCH_IS_64 although in practice of course all 64-bit arches have sync_8. BTW I checked, it really needs sync, it can't use atomics. Oh, and I also noticed that it seems to unconditionally require pthreads. Regards, Arnout > depends on BR2_USE_MMU # fork() > select BR2_PACKAGE_C_ARES > select BR2_PACKAGE_LIBEV > -- 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] 4+ messages in thread
[parent not found: <CAMpS7mRvt1Mpt0faz7kMetV92XwYTojD_aFx1iZ-UGSJ8gbq1A@mail.gmail.com>]
* [Buildroot] [PATCH 1/1] shadowsocks-libev: add dependency on BR2_TOOLCHAIN_HAS_SYNC_4 [not found] ` <CAMpS7mRvt1Mpt0faz7kMetV92XwYTojD_aFx1iZ-UGSJ8gbq1A@mail.gmail.com> @ 2018-06-10 21:37 ` Arnout Vandecappelle 2018-06-18 7:18 ` xu min 0 siblings, 1 reply; 4+ messages in thread From: Arnout Vandecappelle @ 2018-06-10 21:37 UTC (permalink / raw) To: buildroot [Please keep the mailing list in Cc when replying.] [Please don't top-post, but reply in-line like I do below.] On 10-06-18 10:18, xu min wrote: > Hi Arnout?Vandecappelle, > > Thank ?you for your help. Shadowsocks doesn't depends on libuv. But I found > libuv had the same linking error. It fixed by add?dependents on > BR2_TOOLCHAIN_HAS_SYNC_4. So I add the link as reference. I already delete it > from my the latest patch.? > > I found?openal: fix atomic > handling:?https://git.busybox.net/buildroot/tree/package/openal/Config.in. I did > the similar way to fix the problems in my latest patch. Plus add?depends on > BR2_TOOLCHAIN_HAS_THREADS_NPTL. > > Please review my last patch. https://patchwork.ozlabs.org/patch/927318/ > Thank you. > MinXu > PS: > What's the difference between BR2_TOOLCHAIN_HAS_THREADS_NPTL and > BR2_TOOLCHAIN_HAS_THREADS? uClibc has several threads implementations. NPTL is "native threads", i.e. a thread is a lightweigth Linux process. But it's not available on all platforms. Some code depends on this, e.g. it relies on threads having different PIDs. But this is not often the case. So usually, you just need BR2_TOOLCHAIN_HAS_THREADS. > What's the difference between?sync and?atomics? How did you find out?it really > needs sync, it can't use atomics? _SYNC_* are the atomics builtins in GCC (i.e. the __sync_* functions). Packages can use either these functions, or the atomics library that is included in GCC (but which needs -latomic), or libatomic_ops. So it depends on the package which of these it uses. In the case of libcork, it only uses the sync functions. Oh BTW, it would also be good to mention in the commit message and in the comment in Config.in that it is libcork that needs this. Regards, Arnout > > > > On Fri, Jun 8, 2018 at 2:45 AM Arnout Vandecappelle <arnout@mind.be > <mailto:arnout@mind.be>> wrote: > > ?Hi Min, > > ?Thank you for your speedy reaction! > > On 08-06-18 01:01, Min Xu wrote: > > To fixup linking errors: > > "undefined reference to `__sync_val_compare_and_swap_4'" > > Fixes > > > http://autobuild.buildroot.net/results/d00c5f9e1e7a6a40fac5763a06977b351b7875da > > > http://autobuild.buildroot.net/results/0612f2dc09a8763fdf2111ee8d0c223c8531262a > > > > reference: > https://git.buildroot.org/buildroot/commit/?id=7c77d965bdcd301c2644004140faec613c1ee202 > > ?No need for this - it's actually confusing, I thought you meant that the > dependency was indirect due to libuv (as is the case in that commit). > > > Signed-off-by: Min Xu <xuminready at gmail.com <mailto:xuminready@gmail.com>> > > --- > >? package/shadowsocks-libev/Config.in | 2 ++ > >? 1 file changed, 2 insertions(+) > > > > diff --git a/package/shadowsocks-libev/Config.in > b/package/shadowsocks-libev/Config.in > > index d02e5a93ef..c914ed778b 100644 > > --- a/package/shadowsocks-libev/Config.in > > +++ b/package/shadowsocks-libev/Config.in > > @@ -1,5 +1,7 @@ > >? config BR2_PACKAGE_SHADOWSOCKS_LIBEV > >? ? ? ?bool "shadowsocks-libev" > > +? ? ?# uses __sync_val_compare_and_swap_4 > > ?It actually uses the __sync_val_compare_and_swap macro, so the actual function > that is called depends on sizeof(int) and sizeof(void*)... > > > +? ? ?depends on BR2_TOOLCHAIN_HAS_SYNC_4 > > ?... so I think we also need > > ? ? ? ? depends on BR2_TOOLCHAIN_HAS_SYNC_8 if BR2_ARCH_IS_64 > > although in practice of course all 64-bit arches have sync_8. > > ?BTW I checked, it really needs sync, it can't use atomics. > > ?Oh, and I also noticed that it seems to unconditionally require pthreads. > > ?Regards, > ?Arnout > > >? ? ? ?depends on BR2_USE_MMU # fork() > >? ? ? ?select BR2_PACKAGE_C_ARES > >? ? ? ?select BR2_PACKAGE_LIBEV > > > > -- > 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 > > > > -- > * > * > *Best Regards* > * > * > *XuMin's Ready?* -- 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] 4+ messages in thread
* [Buildroot] [PATCH 1/1] shadowsocks-libev: add dependency on BR2_TOOLCHAIN_HAS_SYNC_4 2018-06-10 21:37 ` Arnout Vandecappelle @ 2018-06-18 7:18 ` xu min 0 siblings, 0 replies; 4+ messages in thread From: xu min @ 2018-06-18 7:18 UTC (permalink / raw) To: buildroot Hi Arnout, Thank you for you help. Your comment is very useful for me. I'll keep learning. MinXu On Sun, Jun 10, 2018 at 2:37 PM Arnout Vandecappelle <arnout@mind.be> wrote: > [Please keep the mailing list in Cc when replying.] > [Please don't top-post, but reply in-line like I do below.] > > On 10-06-18 10:18, xu min wrote: > > Hi Arnout Vandecappelle, > > > > Thank you for your help. Shadowsocks doesn't depends on libuv. But I > found > > libuv had the same linking error. It fixed by add dependents on > > BR2_TOOLCHAIN_HAS_SYNC_4. So I add the link as reference. I already > delete it > > from my the latest patch. > > > > I found openal: fix atomic > > handling: > https://git.busybox.net/buildroot/tree/package/openal/Config.in. I did > > the similar way to fix the problems in my latest patch. Plus add depends > on > > BR2_TOOLCHAIN_HAS_THREADS_NPTL. > > > > Please review my last patch. https://patchwork.ozlabs.org/patch/927318/ > > Thank you. > > MinXu > > PS: > > What's the difference between BR2_TOOLCHAIN_HAS_THREADS_NPTL and > > BR2_TOOLCHAIN_HAS_THREADS? > > uClibc has several threads implementations. NPTL is "native threads", > i.e. a > thread is a lightweigth Linux process. But it's not available on all > platforms. > Some code depends on this, e.g. it relies on threads having different > PIDs. But > this is not often the case. So usually, you just need > BR2_TOOLCHAIN_HAS_THREADS. > > > > What's the difference between sync and atomics? How did you find out it > really > > needs sync, it can't use atomics? > > _SYNC_* are the atomics builtins in GCC (i.e. the __sync_* functions). > Packages > can use either these functions, or the atomics library that is included in > GCC > (but which needs -latomic), or libatomic_ops. So it depends on the package > which > of these it uses. In the case of libcork, it only uses the sync functions. > > Oh BTW, it would also be good to mention in the commit message and in the > comment in Config.in that it is libcork that needs this. > > Regards, > Arnout > > > > > > > > > > On Fri, Jun 8, 2018 at 2:45 AM Arnout Vandecappelle <arnout@mind.be > > <mailto:arnout@mind.be>> wrote: > > > > Hi Min, > > > > Thank you for your speedy reaction! > > > > On 08-06-18 01:01, Min Xu wrote: > > > To fixup linking errors: > > > "undefined reference to `__sync_val_compare_and_swap_4'" > > > Fixes > > > > > > http://autobuild.buildroot.net/results/d00c5f9e1e7a6a40fac5763a06977b351b7875da > > > > > > http://autobuild.buildroot.net/results/0612f2dc09a8763fdf2111ee8d0c223c8531262a > > > > > > reference: > > > https://git.buildroot.org/buildroot/commit/?id=7c77d965bdcd301c2644004140faec613c1ee202 > > > > No need for this - it's actually confusing, I thought you meant > that the > > dependency was indirect due to libuv (as is the case in that commit). > > > > > Signed-off-by: Min Xu <xuminready@gmail.com <mailto: > xuminready at gmail.com>> > > > --- > > > package/shadowsocks-libev/Config.in | 2 ++ > > > 1 file changed, 2 insertions(+) > > > > > > diff --git a/package/shadowsocks-libev/Config.in > > b/package/shadowsocks-libev/Config.in > > > index d02e5a93ef..c914ed778b 100644 > > > --- a/package/shadowsocks-libev/Config.in > > > +++ b/package/shadowsocks-libev/Config.in > > > @@ -1,5 +1,7 @@ > > > config BR2_PACKAGE_SHADOWSOCKS_LIBEV > > > bool "shadowsocks-libev" > > > + # uses __sync_val_compare_and_swap_4 > > > > It actually uses the __sync_val_compare_and_swap macro, so the > actual function > > that is called depends on sizeof(int) and sizeof(void*)... > > > > > + depends on BR2_TOOLCHAIN_HAS_SYNC_4 > > > > ... so I think we also need > > > > depends on BR2_TOOLCHAIN_HAS_SYNC_8 if BR2_ARCH_IS_64 > > > > although in practice of course all 64-bit arches have sync_8. > > > > BTW I checked, it really needs sync, it can't use atomics. > > > > Oh, and I also noticed that it seems to unconditionally require > pthreads. > > > > Regards, > > Arnout > > > > > depends on BR2_USE_MMU # fork() > > > select BR2_PACKAGE_C_ARES > > > select BR2_PACKAGE_LIBEV > > > > > > > -- > > 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 > > > > > > > > -- > > * > > * > > *Best Regards* > > * > > * > > *XuMin's Ready?* > > -- > 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 > -- *Best Regards* *XuMin's Ready?* -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.busybox.net/pipermail/buildroot/attachments/20180618/622d5224/attachment.html> ^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2018-06-18 7:18 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-06-07 23:01 [Buildroot] [PATCH 1/1] shadowsocks-libev: add dependency on BR2_TOOLCHAIN_HAS_SYNC_4 Min Xu
2018-06-08 9:45 ` Arnout Vandecappelle
[not found] ` <CAMpS7mRvt1Mpt0faz7kMetV92XwYTojD_aFx1iZ-UGSJ8gbq1A@mail.gmail.com>
2018-06-10 21:37 ` Arnout Vandecappelle
2018-06-18 7:18 ` xu min
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox