Closed Bug 1024510 Opened 10 years ago Closed 10 years ago

--with-system-nss build fails: c++: error: no such file or directory: '../../../dist/lib/libssl.a'

Categories

(Core :: WebRTC: Networking, defect, P3)

All
FreeBSD
defect

Tracking

()

RESOLVED FIXED
mozilla33

People

(Reporter: jbeich, Assigned: jbeich)

References

Details

Attachments

(1 file)

gmake[1]: Entering directory `media/mtransport/test'
_virtualenv/bin/python config/expandlibs_exec.py --depend .deps/buffered_stun_socket_unittest.pp --target buffered_stun_socket_unittest --uselist --  c++ -Qunused-arguments -isystem/usr/local/include  -Qunused-arguments -Wall -Wpointer-arith -Woverloaded-virtual -Werror=return-type -Werror=int-to-pointer-cast -Wtype-limits -Wempty-body -Wsign-compare -Wno-invalid-offsetof -Wno-inline-new-delete -Wno-c++0x-extensions -Wno-extended-offsetof -Wno-unknown-warning-option -Wno-return-type-c-linkage -Wno-mismatched-tags -O2 -pipe -fno-exceptions -fno-strict-aliasing -fno-rtti -ffunction-sections -fdata-sections -fno-exceptions -fno-math-errno -std=gnu++0x -pipe  -DNDEBUG -DTRIMMED -fno-omit-frame-pointer   -o buffered_stun_socket_unittest buffered_stun_socket_unittest.o  -pthread  -Wl,--no-keep-memory -L/usr/local/lib -Wl,-rpath,/usr/local/lib/firefox-nightly -fstack-protector -Wl,-z,noexecstack -Wl,-z,text   -Wl,-rpath-link,dist/bin -Wl,-rpath-link,/usr/local/lib  -L../../../dist/bin -L../../../dist/lib dist/bin/libxul.a dist/bin/libmozalloc.a  -L/usr/local/lib -lplds4 -lplc4 -lnspr4 -pthread ../../../dist/lib/libssl.a ../../../dist/lib/libnss3.a ../../../dist/lib/libnssutil3.a ../../../media/mtransport/standalone/libmtransport_s.a ../../../media/mtransport/third_party/nICEr/nicer_nicer/libnicer.a ../../../media/mtransport/third_party/nrappkit/nrappkit_nrappkit/libnrappkit.a ../../../media/webrtc/trunk/testing/gtest_gtest/libgtest.a  ../../../netwerk/sctp/src/libnksctp_s.a dist/lib/libxpcomglue_s.a dist/bin/libxul.a dist/bin/libmozalloc.a -L/usr/local/lib -lplds4 -lplc4 -lnspr4 -pthread -Wl,--whole-archive dist/lib/libmozglue.a -Wl,--no-whole-archive -rdynamic
Executing: c++ -Qunused-arguments -isystem/usr/local/include -Qunused-arguments -Wall -Wpointer-arith -Woverloaded-virtual -Werror=return-type -Werror=int-to-pointer-cast -Wtype-limits -Wempty-body -Wsign-compare -Wno-invalid-offsetof -Wno-inline-new-delete -Wno-c++0x-extensions -Wno-extended-offsetof -Wno-unknown-warning-option -Wno-return-type-c-linkage -Wno-mismatched-tags -O2 -pipe -fno-exceptions -fno-strict-aliasing -fno-rtti -ffunction-sections -fdata-sections -fno-exceptions -fno-math-errno -std=gnu++0x -pipe -DNDEBUG -DTRIMMED -fno-omit-frame-pointer -o buffered_stun_socket_unittest media/mtransport/test/tmpxRjVfl.list -pthread -Wl,--no-keep-memory -L/usr/local/lib -Wl,-rpath,/usr/local/lib/firefox-nightly -fstack-protector -Wl,-z,noexecstack -Wl,-z,text -Wl,-rpath-link,dist/bin -Wl,-rpath-link,/usr/local/lib -L../../../dist/bin -L../../../dist/lib ../../../dist/bin/libxul.so ../../../dist/bin/libmozalloc.so -L/usr/local/lib -lplds4 -lplc4 -lnspr4 -pthread ../../../dist/lib/libssl.a ../../../dist/lib/libnss3.a ../../../dist/lib/libnssutil3.a ../../../dist/lib/libxpcomglue_s.a ../../../dist/bin/libxul.so ../../../dist/bin/libmozalloc.so -L/usr/local/lib -lplds4 -lplc4 -lnspr4 -pthread -Wl,--whole-archive ../../../dist/lib/libmozglue.a -Wl,--no-whole-archive -rdynamic
media/mtransport/test/tmpxRjVfl.list:
    INPUT("buffered_stun_socket_unittest.o")
    INPUT("../standalone/dtlsidentity.o")
    INPUT("../standalone/nr_socket_prsock.o")
    INPUT("../standalone/nr_timer.o")
    INPUT("../standalone/nricectx.o")
    INPUT("../standalone/nricemediastream.o")
    INPUT("../standalone/nriceresolver.o")
    INPUT("../standalone/nriceresolverfake.o")
    INPUT("../standalone/nrinterfaceprioritizer.o")
    INPUT("../standalone/rlogringbuffer.o")
    INPUT("../standalone/simpletokenbucket.o")
    INPUT("../standalone/stun_udp_socket_filter.o")
    INPUT("../standalone/transportflow.o")
    INPUT("../standalone/transportlayer.o")
    INPUT("../standalone/transportlayerdtls.o")
    INPUT("../standalone/transportlayerice.o")
    INPUT("../standalone/transportlayerlog.o")
    INPUT("../standalone/transportlayerloopback.o")
    INPUT("../standalone/transportlayerprsock.o")
    INPUT("../third_party/nICEr/nicer_nicer/nr_crypto.o")
    INPUT("../third_party/nICEr/nicer_nicer/ice_candidate.o")
    INPUT("../third_party/nICEr/nicer_nicer/ice_candidate_pair.o")
    INPUT("../third_party/nICEr/nicer_nicer/ice_component.o")
    INPUT("../third_party/nICEr/nicer_nicer/ice_ctx.o")
    INPUT("../third_party/nICEr/nicer_nicer/ice_media_stream.o")
    INPUT("../third_party/nICEr/nicer_nicer/ice_parser.o")
    INPUT("../third_party/nICEr/nicer_nicer/ice_peer_ctx.o")
    INPUT("../third_party/nICEr/nicer_nicer/ice_socket.o")
    INPUT("../third_party/nICEr/nicer_nicer/nr_socket.o")
    INPUT("../third_party/nICEr/nicer_nicer/transport_addr.o")
    INPUT("../third_party/nICEr/nicer_nicer/transport_addr_reg.o")
    INPUT("../third_party/nICEr/nicer_nicer/addrs.o")
    INPUT("../third_party/nICEr/nicer_nicer/nr_socket_turn.o")
    INPUT("../third_party/nICEr/nicer_nicer/stun_build.o")
    INPUT("../third_party/nICEr/nicer_nicer/stun_client_ctx.o")
    INPUT("../third_party/nICEr/nicer_nicer/stun_codec.o")
    INPUT("../third_party/nICEr/nicer_nicer/stun_hint.o")
    INPUT("../third_party/nICEr/nicer_nicer/stun_msg.o")
    INPUT("../third_party/nICEr/nicer_nicer/stun_proc.o")
    INPUT("../third_party/nICEr/nicer_nicer/stun_server_ctx.o")
    INPUT("../third_party/nICEr/nicer_nicer/stun_util.o")
    INPUT("../third_party/nICEr/nicer_nicer/turn_client_ctx.o")
    INPUT("../third_party/nICEr/nicer_nicer/cb_args.o")
    INPUT("../third_party/nICEr/nicer_nicer/ice_util.o")
    INPUT("../third_party/nICEr/nicer_nicer/mbslen.o")
    INPUT("../third_party/nICEr/nicer_nicer/Unified_c_nICEr_nicer_nicer0.o")
    INPUT("../third_party/nrappkit/nrappkit_nrappkit/r_log.o")
    INPUT("../third_party/nrappkit/nrappkit_nrappkit/byteorder.o")
    INPUT("../third_party/nrappkit/nrappkit_nrappkit/hex.o")
    INPUT("../third_party/nrappkit/nrappkit_nrappkit/debug.o")
    INPUT("../third_party/nrappkit/nrappkit_nrappkit/r_assoc.o")
    INPUT("../third_party/nrappkit/nrappkit_nrappkit/r_bitfield.o")
    INPUT("../third_party/nrappkit/nrappkit_nrappkit/r_crc32.o")
    INPUT("../third_party/nrappkit/nrappkit_nrappkit/r_data.o")
    INPUT("../third_party/nrappkit/nrappkit_nrappkit/r_errors.o")
    INPUT("../third_party/nrappkit/nrappkit_nrappkit/r_list.o")
    INPUT("../third_party/nrappkit/nrappkit_nrappkit/r_memory.o")
    INPUT("../third_party/nrappkit/nrappkit_nrappkit/r_replace.o")
    INPUT("../third_party/nrappkit/nrappkit_nrappkit/r_time.o")
    INPUT("../third_party/nrappkit/nrappkit_nrappkit/p_buf.o")
    INPUT("../third_party/nrappkit/nrappkit_nrappkit/util.o")
    INPUT("../third_party/nrappkit/nrappkit_nrappkit/Unified_c_nrappkit_nrappkit0.o")
    INPUT("../../webrtc/trunk/testing/gtest_gtest/Unified_cpp_testing_gtest_gtest0.o")
    INPUT("../../../netwerk/sctp/src/sctp_asconf.o")
    INPUT("../../../netwerk/sctp/src/sctp_auth.o")
    INPUT("../../../netwerk/sctp/src/sctp_bsd_addr.o")
    INPUT("../../../netwerk/sctp/src/sctp_callout.o")
    INPUT("../../../netwerk/sctp/src/sctp_cc_functions.o")
    INPUT("../../../netwerk/sctp/src/sctp_crc32.o")
    INPUT("../../../netwerk/sctp/src/sctp_indata.o")
    INPUT("../../../netwerk/sctp/src/sctp_input.o")
    INPUT("../../../netwerk/sctp/src/sctp_output.o")
    INPUT("../../../netwerk/sctp/src/sctp_pcb.o")
    INPUT("../../../netwerk/sctp/src/sctp_peeloff.o")
    INPUT("../../../netwerk/sctp/src/sctp_sha1.o")
    INPUT("../../../netwerk/sctp/src/sctp_ss_functions.o")
    INPUT("../../../netwerk/sctp/src/sctp_sysctl.o")
    INPUT("../../../netwerk/sctp/src/sctp_timer.o")
    INPUT("../../../netwerk/sctp/src/sctp_userspace.o")
    INPUT("../../../netwerk/sctp/src/sctp_usrreq.o")
    INPUT("../../../netwerk/sctp/src/sctputil.o")
    INPUT("../../../netwerk/sctp/src/sctp6_usrreq.o")
    INPUT("../../../netwerk/sctp/src/user_environment.o")
    INPUT("../../../netwerk/sctp/src/user_mbuf.o")
    INPUT("../../../netwerk/sctp/src/user_recv_thread.o")
    INPUT("../../../netwerk/sctp/src/user_sctp_timer_iterate.o")
    INPUT("../../../netwerk/sctp/src/user_socket.o")

c++: error: no such file or directory: '../../../dist/lib/libssl.a'
c++: error: no such file or directory: '../../../dist/lib/libnss3.a'
c++: error: no such file or directory: '../../../dist/lib/libnssutil3.a'
gmake[1]: *** [buffered_stun_socket_unittest] Error 1
Not sure about rationale in bug 1022812 but for system NSS:

- requesting static library out of $(NSS_LIBS) requires string manipulation
  to construct an absolute path from -L and -l flags e.g.,

    NSS_LIBDIR = $(patsubst -L%,%,$(filter -L%,$(NSS_LIBS)))
    NSS_STATIC_LIBS = $(patsubst -l%,$(NSS_LIBDIR)/$(LIB_PREFIX)%.$(LIB_SUFFIX), \
            $(filter -l%,$(NSS_LIBS)))

- the library is built separately, so using static version is only
  going to add unnecessary step to relink mtransport tests every time
  NSS changes

- downstream may disable installation of static system libraries due
  to security issues they often cause after update if something is
  forgotten to be rebuilt

Asking review from a build peer actually listed in
https://wiki.mozilla.org/Modules/Core#Build_Config
Attachment #8439283 - Flags: review?(mshal)
Attachment #8439283 - Flags: feedback?(ekr)
(In reply to Jan Beich from comment #1)
> Created attachment 8439283 [details] [diff] [review]
> ifdef out workaround
> 
> Not sure about rationale in bug 1022812 but for system NSS:

The rationale is that it's extremely hard to debug NSS problems
(which the C++ unit tests in this directory are used to test)
without the static libraries.


> - requesting static library out of $(NSS_LIBS) requires string manipulation
>   to construct an absolute path from -L and -l flags e.g.,
> 
>     NSS_LIBDIR = $(patsubst -L%,%,$(filter -L%,$(NSS_LIBS)))
>     NSS_STATIC_LIBS = $(patsubst
> -l%,$(NSS_LIBDIR)/$(LIB_PREFIX)%.$(LIB_SUFFIX), \
>             $(filter -l%,$(NSS_LIBS)))
>
> - the library is built separately, so using static version is only
>   going to add unnecessary step to relink mtransport tests every time
>   NSS changes

This seems like a pretty low cost, since if you're working on NSS
in the Firefox code base, there's a decent chance you are using
this unit test framework and it makes life more convenient for those
people.


> - downstream may disable installation of static system libraries due
>   to security issues they often cause after update if something is
>   forgotten to be rebuilt

Sure, I'm happy to change the code to make it build for you in this case.

> Asking review from a build peer actually listed in
> https://wiki.mozilla.org/Modules/Core#Build_Config
Comment on attachment 8439283 [details] [diff] [review]
ifdef out workaround

Review of attachment 8439283 [details] [diff] [review]:
-----------------------------------------------------------------

This is fine with me
Attachment #8439283 - Flags: feedback?(ekr) → feedback+
Comment on attachment 8439283 [details] [diff] [review]
ifdef out workaround

Looks fine to me. Please just verify on try, since changing the library link order can do funky things :)
Attachment #8439283 - Flags: review?(mshal) → review+
Priority: -- → P3
https://hg.mozilla.org/mozilla-central/rev/d591d9ed638b
Assignee: nobody → jbeich
Status: NEW → RESOLVED
Closed: 10 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: