Re: [PATCH v3] CodeSamples: Work around removal of liburcu-signal

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

 



Hi,

Leonardo Brás wrote:
[...]
>> Hi Akira,
>>
>> That's a creative way of dealing with this issue, but if we want to add that
>> complexity, I would rather use $(pkg-config --libs liburcu). 
>>
>> Wouldn't this fix the issue as well?
>>
>> Thanks!
> 
> Also, according to Paul's comment on v2 patch it shouldn't be needed:
> 
>>> On the other hand, sys_membarrier() was introduced in 2015 (5b25b13ab08f6),
>>> and no supported kernel (>v4.2) should still miss this syscall. Is it worth
>>> the added complexity? Is so, let's do it.
> 
>> If the -lurcu-signal is left off for old versions of the userspace RCU
>> library, doesn't it simply fall back to using explicit memory barriers?
>> Or am I yet again misremembering?
> 
>> 					Thanx, Paul
> 
> Isn't the above correct?
> 

I have no idea ..., but your v2 patch causes this build error with
liburcu <15.0:

------------------------------------------------------------------------
cc -g -O3 -Wall -fcommon -o route_rcu route_rcu.c ../lib/random.c -lpthread  -lurcu
/usr/bin/ld: /tmp/ccjHTQfN.o: warning: relocation against `urcu_signal_gp' in read-only section `.text'
/usr/bin/ld: /tmp/ccjHTQfN.o: in function `_urcu_signal_read_lock':
/usr/include/x86_64-linux-gnu/urcu/static/urcu-signal.h:97: undefined reference to `urcu_signal_reader'
/usr/bin/ld: /tmp/ccjHTQfN.o: in function `_urcu_signal_read_lock_update':
/usr/include/x86_64-linux-gnu/urcu/static/urcu-signal.h:75: undefined reference to `urcu_signal_gp'
/usr/bin/ld: /tmp/ccjHTQfN.o: in function `urcu_common_wake_up_gp':
/usr/include/x86_64-linux-gnu/urcu/static/urcu-common.h:96: undefined reference to `urcu_signal_gp'
/usr/bin/ld: /usr/include/x86_64-linux-gnu/urcu/static/urcu-common.h:96: undefined reference to `urcu_signal_gp'
/usr/bin/ld: /usr/include/x86_64-linux-gnu/urcu/static/urcu-common.h:97: undefined reference to `urcu_signal_gp'
/usr/bin/ld: /tmp/ccjHTQfN.o: in function `futex':
/usr/include/x86_64-linux-gnu/urcu/futex.h:72: undefined reference to `urcu_signal_gp'
/usr/bin/ld: /tmp/ccjHTQfN.o:/usr/include/x86_64-linux-gnu/urcu/static/urcu-common.h:97: more undefined references to `urcu_signal_gp' follow
/usr/bin/ld: /tmp/ccjHTQfN.o: in function `perftest_reader':
git/perfbook/CodeSamples/defer/routetorture.h:103: undefined reference to `urcu_signal_register_thread'
/usr/bin/ld: git/perfbook/CodeSamples/defer/routetorture.h:126: undefined reference to `urcu_signal_synchronize_rcu'
/usr/bin/ld: git/perfbook/CodeSamples/defer/routetorture.h:128: undefined reference to `urcu_signal_synchronize_rcu'
/usr/bin/ld: git/perfbook/CodeSamples/defer/routetorture.h:130: undefined reference to `urcu_signal_unregister_thread'
/usr/bin/ld: /tmp/ccjHTQfN.o: in function `route_del':
git/perfbook/CodeSamples/defer/route_rcu.c:124: undefined reference to `urcu_signal_call_rcu'
/usr/bin/ld: /tmp/ccjHTQfN.o: in function `stresstest_updater':
git/perfbook/CodeSamples/defer/routetorture.h:216: undefined reference to `urcu_signal_register_thread'
/usr/bin/ld: git/perfbook/CodeSamples/defer/routetorture.h:260: undefined reference to `urcu_signal_synchronize_rcu'
/usr/bin/ld: git/perfbook/CodeSamples/defer/routetorture.h:262: undefined reference to `urcu_signal_synchronize_rcu'
/usr/bin/ld: git/perfbook/CodeSamples/defer/routetorture.h:264: undefined reference to `urcu_signal_unregister_thread'
/usr/bin/ld: /tmp/ccjHTQfN.o: in function `route_clear':
git/perfbook/CodeSamples/defer/route_rcu.c:149: undefined reference to `urcu_signal_synchronize_rcu'
/usr/bin/ld: /tmp/ccjHTQfN.o: in function `smoketest':
git/perfbook/CodeSamples/defer/routetorture.h:47: undefined reference to `urcu_signal_register_thread'
/usr/bin/ld: git/perfbook/CodeSamples/defer/routetorture.h:62: undefined reference to `urcu_signal_unregister_thread'
/usr/bin/ld: warning: creating DT_TEXTREL in a PIE
collect2: error: ld returned 1 exit status
make[1]: *** [Makefile:134: route_rcu] Error 1
make[1]: Leaving directory 'git/perfbook/CodeSamples/defer'
----------------------------------------------------------------

This is under Ubuntu 22.04 LTS.

This looks to me as an unacceptable build regression.

The use of $(pkg-config --libs liburcu) didn't occur to me.

I'll give it a try.

        Thanks, Akira





[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux