Fix link issue of test_libhttp2 on FreeBSD 12 with --enable-debug#6666
Fix link issue of test_libhttp2 on FreeBSD 12 with --enable-debug#6666zwoop merged 1 commit intoapache:masterfrom
Conversation
d90feba to
e3cd488
Compare
|
[approve ci]. |
e3cd488 to
0e2257e
Compare
|
I found the correct order of libs that satisfy our platforms. It's a bit wired, though. |
|
Does this mean librecords_p.a depends on libhttp2.a? How come? |
0e2257e to
3595bfb
Compare
|
Add a comment. |
|
This looks really clunky ... :) Not saying we shouldn't do this, but it doesn't feel right? :) |
|
I agree with this is an ugly hack:( I still don't know what is root cause, but this looks LLD specific issue with debug build. If I use GNU ld instead of LLD, the issue is gone.
No. LLD has a different approach of handling of archive files, the order doesn't mean dependencies.
|
|
I looked into this too. Here's a couple of findings:
Because Http2ClientSession does depend on ProxySession, adding libproxy.a or a stub (mock) module that satisfies the requirement for libproxy.a may be an appropriate approach. |
3595bfb to
f132f77
Compare
|
Thanks for looking.
This explains why we are facing the issue with debug build. Some symbols which are removed by optimization would be a trigger.
The order around |
|
I pushed new commit which satisfies both of GNU ld & LLD without duplicated lines. |
This is interesting. You may already have tried this, but adding only a dup libhdr.a anywhere after libinkevent.a works too (checked only with LLD). I thought libhttp2.a is the trigger but it might be libhdr.a. The latest change, which moves libinkevent.a between libhttp2.a and libhdr.a, would be the best if I had to choose one from the options we currently have. However, we still depends on the optimization magic, which is uncontrollable. Can you put add a comment that says there is this mystery? A link for this issue would be helpful. |
f132f77 to
75838b3
Compare
|
[approve ci centos] |
|
Cherry-picked to 8.1.x |
Fix FreeBSD 12 debug jobs on ci.
https://ci.trafficserver.apache.org/job/freebsd_12-master/compiler=clang,label=freebsd_12,type=debug/1334/console
Both of 9.0.x and 8.1.x branch need this. The unit test is introduced by 582df40 and it was cherry picked to 9.0.x and 8.1.x.