Opened 2 years ago

Closed 2 years ago

#23458 closed task (wontfix)

Check if the pic-executable flag and setting the entry point can force mingw's ld to keep the reloc section

Reported by: boklm Owned by: boklm
Priority: Medium Milestone:
Component: Applications/Tor Browser Version:
Severity: Normal Keywords: TorBrowserTeam201710
Cc: tbb-team Actual Points:
Parent ID: Points:
Reviewer: Sponsor:

Description

We use a binutils patch to force ld to to keep the reloc section:
https://gitweb.torproject.org/builders/tor-browser-build.git/tree/projects/binutils/enable-reloc-section-ld.patch

FFmpeg is using a workaround to do that:
https://github.com/TheRyuu/FFmpeg/commit/91b668acd6decec0a6f8d20bf56e2644f96adcb9

We should check if this workaround works for us too. Using this workaround might be easier than fixing the binutils patch to make it work for x86_64 builds, for #23228.

Child Tickets

Change History (5)

comment:1 Changed 2 years ago by boklm

I tried to do a build using -Wl,--pic-executable,-e,_mainCRTStartup instead of using the binutils patch, and the firefox and openssl parts built without error, but libevent fails with the following error:

libtool: link: i686-w64-mingw32-gcc -shared  .libs/event.o .libs/evthread.o .libs/buffer.o .libs/bufferevent.o .libs/bufferevent_sock.o .libs/bufferevent_filter.o .libs/bufferevent_pair.o .libs/listener.o .libs/bufferevent_ratelim.o .libs/evmap.o .libs/log.o .libs/evutil.o .libs/evutil_rand.o .libs/strlcpy.o .libs/win32select.o .libs/evthread_win32.o .libs/buffer_iocp.o .libs/event_iocp.o .libs/bufferevent_async.o .libs/signal.o .libs/event_tagging.o .libs/http.o .libs/evdns.o .libs/evrpc.o   /var/tmp/dist/mingw-w64/i686-w64-mingw32/lib/../lib/libssp.dll.a -L/var/tmp/dist/mingw-w64/i686-w64-mingw32/lib -L/var/tmp/dist/mingw-w64/mingw/lib -L/var/tmp/dist/mingw-w64/gcclibs -lws2_32 -lshell32 -ladvapi32  -mwindows -mwindows -Wl,--dynamicbase -Wl,--pic-executable -Wl,-e -Wl,_mainCRTStartup -Wl,--nxcompat   -o .libs/libevent-2-0-5.dll -Wl,--enable-auto-image-base -Xlinker --out-implib -Xlinker .libs/libevent.dll.a
/var/tmp/dist/mingw-w64/lib/gcc/i686-w64-mingw32/5.4.0/../../../../i686-w64-mingw32/bin/ld: warning: cannot find entry symbol _mainCRTStartup; defaulting to 00401000
.libs/event_tagging.o:event_tagging.c:(.text+0x2c6): undefined reference to `evbuffer_add'
.libs/event_tagging.o:event_tagging.c:(.text+0x330): undefined reference to `evbuffer_add'
.libs/event_tagging.o:event_tagging.c:(.text+0x3ce): undefined reference to `evbuffer_add'
.libs/event_tagging.o:event_tagging.c:(.text+0x417): undefined reference to `evbuffer_get_length'
.libs/event_tagging.o:event_tagging.c:(.text+0x44b): undefined reference to `evbuffer_pullup'
.libs/event_tagging.o:event_tagging.c:(.text+0x4ca): undefined reference to `evbuffer_drain'
.libs/event_tagging.o:event_tagging.c:(.text+0x5a9): undefined reference to `evbuffer_add'
.libs/event_tagging.o:event_tagging.c:(.text+0x5fb): undefined reference to `evbuffer_get_length'
.libs/event_tagging.o:event_tagging.c:(.text+0x61c): undefined reference to `evbuffer_add_buffer'
.libs/event_tagging.o:event_tagging.c:(.text+0x6a3): undefined reference to `evbuffer_add'
.libs/event_tagging.o:event_tagging.c:(.text+0x737): undefined reference to `evbuffer_add'
.libs/event_tagging.o:event_tagging.c:(.text+0x866): undefined reference to `evbuffer_get_length'
.libs/event_tagging.o:event_tagging.c:(.text+0x89e): undefined reference to `evbuffer_pullup'
.libs/event_tagging.o:event_tagging.c:(.text+0x909): undefined reference to `evbuffer_pullup'
.libs/event_tagging.o:event_tagging.c:(.text+0x9c4): undefined reference to `evbuffer_get_length'
.libs/event_tagging.o:event_tagging.c:(.text+0x9fc): undefined reference to `evbuffer_pullup'
.libs/event_tagging.o:event_tagging.c:(.text+0xa67): undefined reference to `evbuffer_pullup'
.libs/event_tagging.o:event_tagging.c:(.text+0xb70): undefined reference to `evbuffer_drain'
.libs/event_tagging.o:event_tagging.c:(.text+0xbe5): undefined reference to `evbuffer_drain'
.libs/event_tagging.o:event_tagging.c:(.text+0xdde): undefined reference to `evbuffer_get_length'
.libs/event_tagging.o:event_tagging.c:(.text+0xe4e): undefined reference to `evbuffer_drain'
.libs/event_tagging.o:event_tagging.c:(.text+0xebf): undefined reference to `evbuffer_pullup'
.libs/event_tagging.o:event_tagging.c:(.text+0xed2): undefined reference to `evbuffer_add'
.libs/event_tagging.o:event_tagging.c:(.text+0xef0): undefined reference to `evbuffer_drain'
.libs/event_tagging.o:event_tagging.c:(.text+0xf8f): undefined reference to `evbuffer_get_length'
.libs/event_tagging.o:event_tagging.c:(.text+0xfce): undefined reference to `evbuffer_drain'
.libs/event_tagging.o:event_tagging.c:(.text+0x1080): undefined reference to `evbuffer_get_length'
.libs/event_tagging.o:event_tagging.c:(.text+0x10bf): undefined reference to `evbuffer_drain'
.libs/event_tagging.o:event_tagging.c:(.text+0x1165): undefined reference to `evbuffer_remove'
.libs/event_tagging.o:event_tagging.c:(.text+0x11d6): undefined reference to `event_mm_malloc_'
.libs/event_tagging.o:event_tagging.c:(.text+0x11fa): undefined reference to `event_warn'
.libs/event_tagging.o:event_tagging.c:(.text+0x121c): undefined reference to `evbuffer_remove'
.libs/event_tagging.o:event_tagging.c:(.text+0x1322): undefined reference to `evbuffer_drain'
.libs/http.o:http.c:(.text+0x7b): undefined reference to `evutil_snprintf'
.libs/http.o:http.c:(.text+0x94): undefined reference to `_event_strlcpy'
.libs/http.o:http.c:(.text+0xe2): undefined reference to `_event_strlcpy'
.libs/http.o:http.c:(.text+0x143): undefined reference to `_event_strlcpy'
.libs/http.o:http.c:(.text+0x1d5): undefined reference to `event_errx'
.libs/http.o:http.c:(.text+0x368): undefined reference to `event_warn'
.libs/http.o:http.c:(.text+0x3a2): undefined reference to `event_mm_malloc_'
.libs/http.o:http.c:(.text+0x3cf): undefined reference to `event_warn'
.libs/http.o:http.c:(.text+0x5e8): undefined reference to `event_add'
.libs/http.o:http.c:(.text+0x5fd): undefined reference to `event_add'
.libs/http.o:http.c:(.text+0x676): undefined reference to `bufferevent_setcb'
.libs/http.o:http.c:(.text+0x68c): undefined reference to `bufferevent_enable'
.libs/http.o:http.c:(.text+0x6d1): undefined reference to `bufferevent_disable'
.libs/http.o:http.c:(.text+0x718): undefined reference to `bufferevent_enable'
.libs/http.o:http.c:(.text+0x73a): undefined reference to `bufferevent_get_output'
.libs/http.o:http.c:(.text+0x752): undefined reference to `evbuffer_add_printf'
.libs/http.o:http.c:(.text+0x799): undefined reference to `bufferevent_setcb'
.libs/http.o:http.c:(.text+0x861): undefined reference to `bufferevent_get_output'
.libs/http.o:http.c:(.text+0x886): undefined reference to `evbuffer_add_printf'
.libs/http.o:http.c:(.text+0x8c4): undefined reference to `evbuffer_get_length'
.libs/http.o:http.c:(.text+0x8e3): undefined reference to `evutil_snprintf'
.libs/http.o:http.c:(.text+0x96e): undefined reference to `evutil_ascii_strcasecmp'
.libs/http.o:http.c:(.text+0x9af): undefined reference to `evutil_ascii_strcasecmp'
.libs/http.o:http.c:(.text+0xa1f): undefined reference to `evutil_ascii_strncasecmp'
.libs/http.o:http.c:(.text+0xb4a): undefined reference to `evutil_snprintf'
.libs/http.o:http.c:(.text+0xbd8): undefined reference to `bufferevent_get_output'
.libs/http.o:http.c:(.text+0xbfb): undefined reference to `evbuffer_add_printf'
.libs/http.o:http.c:(.text+0xc80): undefined reference to `evbuffer_get_length'
.libs/http.o:http.c:(.text+0xd91): undefined reference to `bufferevent_get_output'
.libs/http.o:http.c:(.text+0xdf8): undefined reference to `evbuffer_add_printf'
.libs/http.o:http.c:(.text+0xe21): undefined reference to `evbuffer_add'
.libs/http.o:http.c:(.text+0xe2f): undefined reference to `evbuffer_get_length'
.libs/http.o:http.c:(.text+0xe48): undefined reference to `evbuffer_add_buffer'
.libs/http.o:http.c:(.text+0xf8d): undefined reference to `event_mm_free_'
.libs/http.o:http.c:(.text+0x1052): undefined reference to `event_errx'
.libs/http.o:http.c:(.text+0x1068): undefined reference to `bufferevent_disable'
.libs/http.o:http.c:(.text+0x1372): undefined reference to `evbuffer_get_length'
.libs/http.o:http.c:(.text+0x13bc): undefined reference to `evbuffer_readln'
.libs/http.o:http.c:(.text+0x13de): undefined reference to `event_mm_free_'
.libs/http.o:http.c:(.text+0x13fd): undefined reference to `evutil_strtoll'
.libs/http.o:http.c:(.text+0x1441): undefined reference to `event_mm_free_'
.libs/http.o:http.c:(.text+0x1570): undefined reference to `evbuffer_remove_buffer'
.libs/http.o:http.c:(.text+0x15c6): undefined reference to `evbuffer_get_length'
.libs/http.o:http.c:(.text+0x15da): undefined reference to `evbuffer_drain'
.libs/http.o:http.c:(.text+0x1652): undefined reference to `bufferevent_get_input'
.libs/http.o:http.c:(.text+0x16a1): undefined reference to `bufferevent_disable'
.libs/http.o:http.c:(.text+0x16c4): undefined reference to `bufferevent_enable'
.libs/http.o:http.c:(.text+0x1705): undefined reference to `bufferevent_get_input'
.libs/http.o:http.c:(.text+0x17b9): undefined reference to `evbuffer_get_length'
.libs/http.o:http.c:(.text+0x17e9): undefined reference to `evbuffer_get_length'
.libs/http.o:http.c:(.text+0x180e): undefined reference to `evbuffer_add_buffer'
.libs/http.o:http.c:(.text+0x1828): undefined reference to `evbuffer_get_length'
.libs/http.o:http.c:(.text+0x1842): undefined reference to `evbuffer_get_length'
.libs/http.o:http.c:(.text+0x18b2): undefined reference to `evbuffer_remove_buffer'
.libs/http.o:http.c:(.text+0x194c): undefined reference to `evbuffer_get_length'
.libs/http.o:http.c:(.text+0x19a6): undefined reference to `evbuffer_get_length'
.libs/http.o:http.c:(.text+0x19ba): undefined reference to `evbuffer_drain'
.libs/http.o:http.c:(.text+0x19f9): undefined reference to `bufferevent_disable'
.libs/http.o:http.c:(.text+0x1a1c): undefined reference to `bufferevent_enable'
.libs/http.o:http.c:(.text+0x1a7d): undefined reference to `event_base_get_deferred_cb_queue'
.libs/http.o:http.c:(.text+0x1a89): undefined reference to `event_deferred_cb_cancel'
.libs/http.o:http.c:(.text+0x1b26): undefined reference to `event_errx'
.libs/http.o:http.c:(.text+0x1bf1): undefined reference to `event_errx'
.libs/http.o:http.c:(.text+0x1c3b): undefined reference to `event_errx'
.libs/http.o:http.c:(.text+0x1d6c): undefined reference to `event_initialized'
.libs/http.o:http.c:(.text+0x1d7e): undefined reference to `event_del'
.libs/http.o:http.c:(.text+0x1d8c): undefined reference to `event_debug_unassign'
.libs/http.o:http.c:(.text+0x1da4): undefined reference to `bufferevent_free'
.libs/http.o:http.c:(.text+0x1dbe): undefined reference to `event_base_get_deferred_cb_queue'
.libs/http.o:http.c:(.text+0x1dca): undefined reference to `event_deferred_cb_cancel'
.libs/http.o:http.c:(.text+0x1dfe): undefined reference to `evutil_closesocket'
.libs/http.o:http.c:(.text+0x1e16): undefined reference to `event_mm_free_'
.libs/http.o:http.c:(.text+0x1e2e): undefined reference to `event_mm_free_'
.libs/http.o:http.c:(.text+0x1e39): undefined reference to `event_mm_free_'
.libs/http.o:http.c:(.text+0x1eb4): undefined reference to `event_errx'
.libs/http.o:http.c:(.text+0x1ecc): undefined reference to `event_mm_free_'
.libs/http.o:http.c:(.text+0x1ed7): undefined reference to `event_mm_strdup_'
.libs/http.o:http.c:(.text+0x1efd): undefined reference to `event_warn'
.libs/http.o:http.c:(.text+0x1f76): undefined reference to `event_errx'
.libs/http.o:http.c:(.text+0x2015): undefined reference to `event_errx'
.libs/http.o:http.c:(.text+0x2090): undefined reference to `bufferevent_disable_hard'
.libs/http.o:http.c:(.text+0x20fe): undefined reference to `evutil_closesocket'
.libs/http.o:http.c:(.text+0x2116): undefined reference to `bufferevent_get_output'
.libs/http.o:http.c:(.text+0x2124): undefined reference to `evbuffer_get_length'
.libs/http.o:http.c:(.text+0x2133): undefined reference to `evbuffer_drain'
.libs/http.o:http.c:(.text+0x2141): undefined reference to `bufferevent_get_input'
.libs/http.o:http.c:(.text+0x214f): undefined reference to `evbuffer_get_length'
.libs/http.o:http.c:(.text+0x215e): undefined reference to `evbuffer_drain'
.libs/http.o:http.c:(.text+0x21bb): undefined reference to `bufferevent_enable'
.libs/http.o:http.c:(.text+0x220b): undefined reference to `bufferevent_disable'
.libs/http.o:http.c:(.text+0x22e9): undefined reference to `event_assign'
.libs/http.o:http.c:(.text+0x2549): undefined reference to `event_errx'
.libs/http.o:http.c:(.text+0x2593): undefined reference to `event_errx'
.libs/http.o:http.c:(.text+0x26ef): undefined reference to `bufferevent_setcb'
.libs/http.o:http.c:(.text+0x2718): undefined reference to `bufferevent_settimeout'
.libs/http.o:http.c:(.text+0x2746): undefined reference to `bufferevent_set_timeouts'
.libs/http.o:http.c:(.text+0x28f8): undefined reference to `event_mm_strdup_'
.libs/http.o:http.c:(.text+0x291e): undefined reference to `event_warn'
.libs/http.o:http.c:(.text+0x2b26): undefined reference to `event_mm_strdup_'
.libs/http.o:http.c:(.text+0x2baf): undefined reference to `evutil_ascii_strcasecmp'
.libs/http.o:http.c:(.text+0x2bc6): undefined reference to `evutil_ascii_strcasecmp'
.libs/http.o:http.c:(.text+0x2c5a): undefined reference to `evutil_ascii_strcasecmp'
.libs/http.o:http.c:(.text+0x2ceb): undefined reference to `event_mm_free_'
.libs/http.o:http.c:(.text+0x2cf9): undefined reference to `event_mm_free_'
.libs/http.o:http.c:(.text+0x2d04): undefined reference to `event_mm_free_'
.libs/http.o:http.c:(.text+0x2d60): undefined reference to `evutil_ascii_strcasecmp'
.libs/http.o:http.c:(.text+0x2dc2): undefined reference to `event_mm_free_'
.libs/http.o:http.c:(.text+0x2dd0): undefined reference to `event_mm_free_'
.libs/http.o:http.c:(.text+0x2ddb): undefined reference to `event_mm_free_'
.libs/http.o:http.c:(.text+0x2f42): undefined reference to `event_mm_calloc_'
.libs/http.o:http.c:(.text+0x2f5f): undefined reference to `event_warn'
.libs/http.o:http.c:(.text+0x2f74): undefined reference to `event_mm_strdup_'
.libs/http.o:http.c:(.text+0x2f91): undefined reference to `event_mm_free_'
.libs/http.o:http.c:(.text+0x2fa5): undefined reference to `event_warn'
.libs/http.o:http.c:(.text+0x2fb7): undefined reference to `event_mm_strdup_'
.libs/http.o:http.c:(.text+0x2fd7): undefined reference to `event_mm_free_'
.libs/http.o:http.c:(.text+0x2fe2): undefined reference to `event_mm_free_'
.libs/http.o:http.c:(.text+0x2ff6): undefined reference to `event_warn'
.libs/http.o:http.c:(.text+0x307a): undefined reference to `evbuffer_readln'
.libs/http.o:http.c:(.text+0x3098): undefined reference to `evbuffer_get_length'
.libs/http.o:http.c:(.text+0x30e0): undefined reference to `event_mm_free_'
.libs/http.o:http.c:(.text+0x3159): undefined reference to `event_mm_free_'
.libs/http.o:http.c:(.text+0x31e1): undefined reference to `event_mm_realloc_'
.libs/http.o:http.c:(.text+0x32c1): undefined reference to `event_mm_free_'
.libs/http.o:http.c:(.text+0x3300): undefined reference to `event_mm_free_'
.libs/http.o:http.c:(.text+0x336d): undefined reference to `event_mm_free_'
.libs/http.o:http.c:(.text+0x3387): undefined reference to `evbuffer_readln'
.libs/http.o:http.c:(.text+0x33b5): undefined reference to `evbuffer_get_length'
.libs/http.o:http.c:(.text+0x33e3): undefined reference to `event_mm_free_'
.libs/http.o:http.c:(.text+0x3482): undefined reference to `evutil_ascii_strcasecmp'
.libs/http.o:http.c:(.text+0x34a1): undefined reference to `event_warnx'
.libs/http.o:http.c:(.text+0x34db): undefined reference to `evutil_strtoll'
.libs/http.o:http.c:(.text+0x363b): undefined reference to `evutil_ascii_strcasecmp'
.libs/http.o:http.c:(.text+0x3724): undefined reference to `evutil_ascii_strcasecmp'
.libs/http.o:http.c:(.text+0x37a2): undefined reference to `bufferevent_get_input'
.libs/http.o:http.c:(.text+0x37aa): undefined reference to `evbuffer_get_length'
.libs/http.o:http.c:(.text+0x3831): undefined reference to `bufferevent_get_input'
.libs/http.o:http.c:(.text+0x38d1): undefined reference to `bufferevent_get_input'
.libs/http.o:http.c:(.text+0x3927): undefined reference to `bufferevent_disable'
.libs/http.o:http.c:(.text+0x39b4): undefined reference to `event_warnx'
.libs/http.o:http.c:(.text+0x3a73): undefined reference to `event_mm_calloc_'
.libs/http.o:http.c:(.text+0x3a90): undefined reference to `event_warn'
.libs/http.o:http.c:(.text+0x3af9): undefined reference to `event_mm_strdup_'
.libs/http.o:http.c:(.text+0x3b1f): undefined reference to `event_warn'
.libs/http.o:http.c:(.text+0x3b4f): undefined reference to `bufferevent_new'
.libs/http.o:http.c:(.text+0x3b75): undefined reference to `event_warn'
.libs/http.o:http.c:(.text+0x3bcd): undefined reference to `bufferevent_base_set'
.libs/http.o:http.c:(.text+0x3bed): undefined reference to `event_deferred_cb_init'
.libs/http.o:http.c:(.text+0x3cb9): undefined reference to `event_errx'
.libs/http.o:http.c:(.text+0x3d02): undefined reference to `event_errx'
.libs/http.o:http.c:(.text+0x3d23): undefined reference to `bufferevent_base_set'
.libs/http.o:http.c:(.text+0x3d84): undefined reference to `bufferevent_settimeout'
.libs/http.o:http.c:(.text+0x3da8): undefined reference to `bufferevent_settimeout'
.libs/http.o:http.c:(.text+0x3f1f): undefined reference to `event_errx'
.libs/http.o:http.c:(.text+0x3f89): undefined reference to `bufferevent_setfd'
.libs/http.o:http.c:(.text+0x3fb6): undefined reference to `bufferevent_setcb'
.libs/http.o:http.c:(.text+0x3fe8): undefined reference to `bufferevent_settimeout'
.libs/http.o:http.c:(.text+0x3ffe): undefined reference to `bufferevent_enable'
.libs/http.o:http.c:(.text+0x4046): undefined reference to `bufferevent_socket_connect_hostname'
.libs/http.o:http.c:(.text+0x407e): undefined reference to `event_sock_warn'
.libs/http.o:http.c:(.text+0x40fe): undefined reference to `event_mm_free_'
.libs/http.o:http.c:(.text+0x4109): undefined reference to `event_mm_strdup_'
.libs/http.o:http.c:(.text+0x412f): undefined reference to `event_warn'
.libs/http.o:http.c:(.text+0x41ae): undefined reference to `event_errx'
.libs/http.o:http.c:(.text+0x4200): undefined reference to `event_errx'
.libs/http.o:http.c:(.text+0x4386): undefined reference to `bufferevent_disable'
.libs/http.o:http.c:(.text+0x439c): undefined reference to `bufferevent_enable'
.libs/http.o:http.c:(.text+0x43d6): undefined reference to `bufferevent_setcb'
.libs/http.o:http.c:(.text+0x43e4): undefined reference to `bufferevent_get_input'
.libs/http.o:http.c:(.text+0x43ec): undefined reference to `evbuffer_get_length'
.libs/http.o:http.c:(.text+0x440a): undefined reference to `event_base_get_deferred_cb_queue'
.libs/http.o:http.c:(.text+0x4416): undefined reference to `event_deferred_cb_schedule'
.libs/http.o:http.c:(.text+0x454d): undefined reference to `event_errx'
.libs/http.o:http.c:(.text+0x45bf): undefined reference to `evbuffer_new'
.libs/http.o:http.c:(.text+0x462d): undefined reference to `evbuffer_add_printf'
.libs/http.o:http.c:(.text+0x464a): undefined reference to `evbuffer_free'
.libs/http.o:http.c:(.text+0x46e1): undefined reference to `event_errx'
.libs/http.o:http.c:(.text+0x4709): undefined reference to `evbuffer_add_buffer'
.libs/http.o:http.c:(.text+0x48f0): undefined reference to `bufferevent_get_output'
.libs/http.o:http.c:(.text+0x48fe): undefined reference to `evbuffer_get_length'
.libs/http.o:http.c:(.text+0x4932): undefined reference to `evbuffer_get_length'
.libs/http.o:http.c:(.text+0x4949): undefined reference to `evbuffer_add_printf'
.libs/http.o:http.c:(.text+0x495b): undefined reference to `evbuffer_add_buffer'
.libs/http.o:http.c:(.text+0x4984): undefined reference to `evbuffer_add'
.libs/http.o:http.c:(.text+0x49fd): undefined reference to `bufferevent_get_output'
.libs/http.o:http.c:(.text+0x4a36): undefined reference to `evbuffer_add'
.libs/http.o:http.c:(.text+0x4a6e): undefined reference to `evbuffer_get_length'
.libs/http.o:http.c:(.text+0x4bc5): undefined reference to `event_mm_free_'
.libs/http.o:http.c:(.text+0x4be4): undefined reference to `event_mm_strdup_'
.libs/http.o:http.c:(.text+0x4c0a): undefined reference to `event_warn'
.libs/http.o:http.c:(.text+0x4d19): undefined reference to `evbuffer_new'
.libs/http.o:http.c:(.text+0x4d8d): undefined reference to `evbuffer_add'
.libs/http.o:http.c:(.text+0x4dba): undefined reference to `evbuffer_add'
.libs/http.o:http.c:(.text+0x4ddc): undefined reference to `evbuffer_add_printf'
.libs/http.o:http.c:(.text+0x4e07): undefined reference to `evbuffer_add'
.libs/http.o:http.c:(.text+0x4e12): undefined reference to `evbuffer_get_length'
.libs/http.o:http.c:(.text+0x4e1a): undefined reference to `event_mm_malloc_'
.libs/http.o:http.c:(.text+0x4e2e): undefined reference to `evbuffer_get_length'
.libs/http.o:http.c:(.text+0x4e44): undefined reference to `evbuffer_remove'
.libs/http.o:http.c:(.text+0x4e4f): undefined reference to `evbuffer_free'
.libs/http.o:http.c:(.text+0x4f51): undefined reference to `EVUTIL_ISXDIGIT'
.libs/http.o:http.c:(.text+0x4f6e): undefined reference to `EVUTIL_ISXDIGIT'
.libs/http.o:http.c:(.text+0x502c): undefined reference to `event_mm_malloc_'
.libs/http.o:http.c:(.text+0x505b): undefined reference to `event_warn'
.libs/http.o:http.c:(.text+0x50db): undefined reference to `event_mm_malloc_'
.libs/http.o:http.c:(.text+0x510a): undefined reference to `event_warn'
.libs/http.o:http.c:(.text+0x518f): undefined reference to `event_errx'
.libs/http.o:http.c:(.text+0x5254): undefined reference to `event_mm_strdup_'
.libs/http.o:http.c:(.text+0x5271): undefined reference to `event_warn'
.libs/http.o:http.c:(.text+0x52e8): undefined reference to `event_mm_malloc_'
.libs/http.o:http.c:(.text+0x5305): undefined reference to `event_warn'
.libs/http.o:http.c:(.text+0x5356): undefined reference to `event_mm_free_'
.libs/http.o:http.c:(.text+0x5391): undefined reference to `event_mm_free_'
.libs/http.o:http.c:(.text+0x5497): undefined reference to `event_mm_malloc_'
.libs/http.o:http.c:(.text+0x54f6): undefined reference to `event_mm_free_'
.libs/http.o:http.c:(.text+0x5514): undefined reference to `event_mm_free_'
.libs/http.o:http.c:(.text+0x55d2): undefined reference to `EVUTIL_TOLOWER'
.libs/http.o:http.c:(.text+0x55e5): undefined reference to `EVUTIL_TOLOWER'
.libs/http.o:http.c:(.text+0x5651): undefined reference to `evutil_ascii_strcasecmp'
.libs/http.o:http.c:(.text+0x58f1): undefined reference to `evbuffer_new'
.libs/http.o:http.c:(.text+0x5905): undefined reference to `event_mm_free_'
.libs/http.o:http.c:(.text+0x594a): undefined reference to `evbuffer_add_printf'
.libs/http.o:http.c:(.text+0x5955): undefined reference to `event_mm_free_'
.libs/http.o:http.c:(.text+0x5972): undefined reference to `evbuffer_free'
.libs/http.o:http.c:(.text+0x5ad5): undefined reference to `event_sock_warn'
.libs/http.o:http.c:(.text+0x5ae0): undefined reference to `evutil_closesocket'
.libs/http.o:http.c:(.text+0x5bca): undefined reference to `evconnlistener_new'
.libs/http.o:http.c:(.text+0x5c00): undefined reference to `evconnlistener_free'
.libs/http.o:http.c:(.text+0x5c44): undefined reference to `event_mm_malloc_'
.libs/http.o:http.c:(.text+0x5ca0): undefined reference to `evconnlistener_set_cb'
.libs/http.o:http.c:(.text+0x5cd9): undefined reference to `evconnlistener_get_fd'
.libs/http.o:http.c:(.text+0x5d75): undefined reference to `evconnlistener_free'
.libs/http.o:http.c:(.text+0x5d80): undefined reference to `event_mm_free_'
.libs/http.o:http.c:(.text+0x5dbe): undefined reference to `event_mm_calloc_'
.libs/http.o:http.c:(.text+0x5ddb): undefined reference to `event_warn'
.libs/http.o:http.c:(.text+0x5f5e): undefined reference to `event_mm_free_'
.libs/http.o:http.c:(.text+0x5fd2): undefined reference to `evconnlistener_free'
.libs/http.o:http.c:(.text+0x5fdd): undefined reference to `event_mm_free_'
.libs/http.o:http.c:(.text+0x604a): undefined reference to `event_mm_free_'
.libs/http.o:http.c:(.text+0x6055): undefined reference to `event_mm_free_'
.libs/http.o:http.c:(.text+0x60ca): undefined reference to `event_mm_free_'
.libs/http.o:http.c:(.text+0x610c): undefined reference to `event_mm_free_'
.libs/http.o:http.c:(.text+0x6117): more undefined references to `event_mm_free_' follow
.libs/http.o:http.c:(.text+0x618c): undefined reference to `event_mm_strdup_'
.libs/http.o:http.c:(.text+0x6252): undefined reference to `event_mm_free_'
.libs/http.o:http.c:(.text+0x62a3): undefined reference to `event_mm_calloc_'
.libs/http.o:http.c:(.text+0x62be): undefined reference to `event_mm_strdup_'
.libs/http.o:http.c:(.text+0x62db): undefined reference to `event_mm_free_'
.libs/http.o:http.c:(.text+0x635e): undefined reference to `evutil_ascii_strcasecmp'
.libs/http.o:http.c:(.text+0x63a2): undefined reference to `event_mm_free_'
.libs/http.o:http.c:(.text+0x63ad): undefined reference to `event_mm_free_'
.libs/http.o:http.c:(.text+0x6563): undefined reference to `event_mm_calloc_'
.libs/http.o:http.c:(.text+0x6580): undefined reference to `event_warn'
.libs/http.o:http.c:(.text+0x6595): undefined reference to `event_mm_strdup_'
.libs/http.o:http.c:(.text+0x65bb): undefined reference to `event_warn'
.libs/http.o:http.c:(.text+0x65c6): undefined reference to `event_mm_free_'
.libs/http.o:http.c:(.text+0x66bd): undefined reference to `event_mm_free_'
.libs/http.o:http.c:(.text+0x66c8): undefined reference to `event_mm_free_'
.libs/http.o:http.c:(.text+0x675d): undefined reference to `event_mm_calloc_'
.libs/http.o:http.c:(.text+0x677a): undefined reference to `event_warn'
.libs/http.o:http.c:(.text+0x67b1): undefined reference to `event_mm_calloc_'
.libs/http.o:http.c:(.text+0x67d7): undefined reference to `event_warn'
.libs/http.o:http.c:(.text+0x680b): undefined reference to `event_mm_calloc_'
.libs/http.o:http.c:(.text+0x6831): undefined reference to `event_warn'
.libs/http.o:http.c:(.text+0x6856): undefined reference to `evbuffer_new'
.libs/http.o:http.c:(.text+0x687c): undefined reference to `event_warn'
.libs/http.o:http.c:(.text+0x6883): undefined reference to `evbuffer_new'
.libs/http.o:http.c:(.text+0x68a9): undefined reference to `event_warn'
.libs/http.o:http.c:(.text+0x693b): undefined reference to `event_mm_free_'
.libs/http.o:http.c:(.text+0x6953): undefined reference to `event_mm_free_'
.libs/http.o:http.c:(.text+0x6983): undefined reference to `event_mm_free_'
.libs/http.o:http.c:(.text+0x699b): undefined reference to `event_mm_free_'
.libs/http.o:http.c:(.text+0x69b7): undefined reference to `event_mm_free_'
.libs/http.o:http.c:(.text+0x69d3): more undefined references to `event_mm_free_' follow
.libs/http.o:http.c:(.text+0x69eb): undefined reference to `evbuffer_free'
.libs/http.o:http.c:(.text+0x6a03): undefined reference to `evbuffer_free'
.libs/http.o:http.c:(.text+0x6a0e): undefined reference to `event_mm_free_'
.libs/http.o:http.c:(.text+0x6c43): undefined reference to `EVUTIL_ISDIGIT'
.libs/http.o:http.c:(.text+0x6c78): undefined reference to `event_mm_malloc_'
.libs/http.o:http.c:(.text+0x6c9e): undefined reference to `event_warn'
.libs/http.o:http.c:(.text+0x6e77): undefined reference to `event_mm_free_'
.libs/http.o:http.c:(.text+0x6e89): undefined reference to `event_mm_free_'
.libs/http.o:http.c:(.text+0x6ed0): undefined reference to `event_mm_free_'
.libs/http.o:http.c:(.text+0x6edb): undefined reference to `event_mm_free_'
.libs/http.o:http.c:(.text+0x6f42): undefined reference to `bufferevent_setfd'
.libs/http.o:http.c:(.text+0x6fad): undefined reference to `event_mm_strdup_'
.libs/http.o:http.c:(.text+0x6fd3): undefined reference to `event_warn'
.libs/http.o:http.c:(.text+0x70f3): undefined reference to `event_sock_warn'
.libs/http.o:http.c:(.text+0x70fe): undefined reference to `evutil_closesocket'
.libs/http.o:http.c:(.text+0x721a): undefined reference to `event_mm_strdup_'
.libs/http.o:http.c:(.text+0x7232): undefined reference to `event_mm_strdup_'
.libs/http.o:http.c:(.text+0x72c1): undefined reference to `event_sock_warn'
.libs/http.o:http.c:(.text+0x72d6): undefined reference to `evutil_make_socket_nonblocking'
.libs/http.o:http.c:(.text+0x72e9): undefined reference to `evutil_make_socket_closeonexec'
.libs/http.o:http.c:(.text+0x7335): undefined reference to `evutil_make_listen_socket_reuseable'
.libs/http.o:http.c:(.text+0x7395): undefined reference to `evutil_closesocket'
.libs/http.o:http.c:(.text+0x7433): undefined reference to `evutil_snprintf'
.libs/http.o:http.c:(.text+0x7453): undefined reference to `evutil_getaddrinfo'
.libs/http.o:http.c:(.text+0x7471): undefined reference to `event_warn'
.libs/http.o:http.c:(.text+0x747e): undefined reference to `evutil_gai_strerror'
.libs/http.o:http.c:(.text+0x748e): undefined reference to `event_warnx'
.libs/http.o:http.c:(.text+0x753a): undefined reference to `evutil_freeaddrinfo'
.libs/http.o:http.c:(.text+0x7573): undefined reference to `event_mm_calloc_'
.libs/http.o:http.c:(.text+0x7632): undefined reference to `event_errx'
.libs/http.o:http.c:(.text+0x7652): undefined reference to `EVUTIL_ISALPHA'
.libs/http.o:http.c:(.text+0x766e): undefined reference to `EVUTIL_ISALNUM'
.libs/http.o:http.c:(.text+0x7745): undefined reference to `EVUTIL_ISXDIGIT'
.libs/http.o:http.c:(.text+0x775d): undefined reference to `EVUTIL_ISXDIGIT'
.libs/http.o:http.c:(.text+0x7804): undefined reference to `EVUTIL_ISXDIGIT'
.libs/http.o:http.c:(.text+0x781c): undefined reference to `EVUTIL_ISXDIGIT'
.libs/http.o:http.c:(.text+0x788c): undefined reference to `EVUTIL_ISDIGIT'
.libs/http.o:http.c:(.text+0x7959): undefined reference to `EVUTIL_ISXDIGIT'
.libs/http.o:http.c:(.text+0x7978): undefined reference to `EVUTIL_ISXDIGIT'
.libs/http.o:http.c:(.text+0x7a6d): undefined reference to `evutil_inet_pton'
.libs/http.o:http.c:(.text+0x7aec): undefined reference to `event_errx'
.libs/http.o:http.c:(.text+0x7b00): undefined reference to `event_mm_strdup_'
.libs/http.o:http.c:(.text+0x7b26): undefined reference to `event_warn'
.libs/http.o:http.c:(.text+0x7b95): undefined reference to `event_mm_strdup_'
.libs/http.o:http.c:(.text+0x7bbb): undefined reference to `event_warn'
.libs/http.o:http.c:(.text+0x7bf3): undefined reference to `EVUTIL_ISDIGIT'
.libs/http.o:http.c:(.text+0x7c9b): undefined reference to `event_errx'
.libs/http.o:http.c:(.text+0x7d12): undefined reference to `event_mm_malloc_'
.libs/http.o:http.c:(.text+0x7d38): undefined reference to `event_warn'
.libs/http.o:http.c:(.text+0x7eff): undefined reference to `EVUTIL_ISXDIGIT'
.libs/http.o:http.c:(.text+0x7f17): undefined reference to `EVUTIL_ISXDIGIT'
.libs/http.o:http.c:(.text+0x805a): undefined reference to `event_mm_calloc_'
.libs/http.o:http.c:(.text+0x8077): undefined reference to `event_warn'
.libs/http.o:http.c:(.text+0x8099): undefined reference to `event_mm_strdup_'
.libs/http.o:http.c:(.text+0x80b6): undefined reference to `event_warn'
.libs/http.o:http.c:(.text+0x810b): undefined reference to `event_mm_strdup_'
.libs/http.o:http.c:(.text+0x8131): undefined reference to `event_warn'
.libs/http.o:http.c:(.text+0x82d9): undefined reference to `event_errx'
.libs/http.o:http.c:(.text+0x82e4): undefined reference to `event_mm_strdup_'
.libs/http.o:http.c:(.text+0x830a): undefined reference to `event_warn'
.libs/http.o:http.c:(.text+0x8320): undefined reference to `event_mm_strdup_'
.libs/http.o:http.c:(.text+0x8346): undefined reference to `event_warn'
.libs/http.o:http.c:(.text+0x8359): undefined reference to `event_mm_strdup_'
.libs/http.o:http.c:(.text+0x837f): undefined reference to `event_warn'
.libs/http.o:http.c:(.text+0x838c): undefined reference to `event_mm_free_'
.libs/http.o:http.c:(.text+0x83c0): undefined reference to `event_mm_free_'
.libs/http.o:http.c:(.text+0x8405): undefined reference to `event_mm_free_'
.libs/http.o:http.c:(.text+0x841d): undefined reference to `event_mm_free_'
.libs/http.o:http.c:(.text+0x8435): undefined reference to `event_mm_free_'
.libs/http.o:http.c:(.text+0x844d): more undefined references to `event_mm_free_' follow
.libs/http.o:http.c:(.text+0x84f3): undefined reference to `evbuffer_new'
.libs/http.o:http.c:(.text+0x8539): undefined reference to `evbuffer_add'
.libs/http.o:http.c:(.text+0x8554): undefined reference to `evbuffer_add'
.libs/http.o:http.c:(.text+0x857d): undefined reference to `evbuffer_add'
.libs/http.o:http.c:(.text+0x85a4): undefined reference to `evbuffer_add_printf'
.libs/http.o:http.c:(.text+0x85cd): undefined reference to `evbuffer_add'
.libs/http.o:http.c:(.text+0x85f4): undefined reference to `evbuffer_add_printf'
.libs/http.o:http.c:(.text+0x864f): undefined reference to `evbuffer_add'
.libs/http.o:http.c:(.text+0x8674): undefined reference to `evbuffer_add'
.libs/http.o:http.c:(.text+0x869d): undefined reference to `evbuffer_add'
.libs/http.o:http.c:(.text+0x86c2): undefined reference to `evbuffer_add'
.libs/http.o:http.c:(.text+0x86eb): undefined reference to `evbuffer_add'
.libs/http.o:http.c:(.text+0x8706): more undefined references to `evbuffer_add' follow
.libs/http.o:http.c:(.text+0x8711): undefined reference to `evbuffer_get_length'
.libs/http.o:http.c:(.text+0x8727): undefined reference to `evbuffer_free'
.libs/http.o:http.c:(.text+0x8747): undefined reference to `evbuffer_remove'
.libs/http.o:http.c:(.text+0x875b): undefined reference to `evbuffer_free'
.libs/http.o:http.c:(.text+0x8918): undefined reference to `event_mm_free_'
.libs/http.o:http.c:(.text+0x8929): undefined reference to `event_mm_strdup_'
.libs/http.o:http.c:(.text+0x894f): undefined reference to `event_warn'
.libs/http.o:http.c:(.text+0x89dd): undefined reference to `event_mm_free_'
.libs/http.o:http.c:(.text+0x89ee): undefined reference to `event_mm_strdup_'
.libs/http.o:http.c:(.text+0x8a14): undefined reference to `event_warn'
.libs/http.o:http.c:(.text+0x8adb): undefined reference to `event_mm_free_'
.libs/http.o:http.c:(.text+0x8aec): undefined reference to `event_mm_strdup_'
.libs/http.o:http.c:(.text+0x8b12): undefined reference to `event_warn'
.libs/http.o:http.c:(.text+0x8bf9): undefined reference to `event_mm_free_'
.libs/http.o:http.c:(.text+0x8c0a): undefined reference to `event_mm_strdup_'
.libs/http.o:http.c:(.text+0x8c30): undefined reference to `event_warn'
.libs/http.o:http.c:(.text+0x8cd2): undefined reference to `event_mm_free_'
.libs/http.o:http.c:(.text+0x8ce3): undefined reference to `event_mm_strdup_'
.libs/http.o:http.c:(.text+0x8d09): undefined reference to `event_warn'
.libs/http.o:http.c:(.text+0x8dab): undefined reference to `event_mm_free_'
.libs/http.o:http.c:(.text+0x8dbc): undefined reference to `event_mm_strdup_'
.libs/http.o:http.c:(.text+0x8de2): undefined reference to `event_warn'
/var/tmp/dist/mingw-w64/lib/gcc/i686-w64-mingw32/5.4.0/../../../../i686-w64-mingw32/bin/ld: .libs/http.o: bad reloc address 0x0 in section `.data'
collect2: error: ld returned 1 exit status
make[2]: *** [libevent_extra.la] Error 1
make[2]: *** Waiting for unfinished jobs....
/var/tmp/dist/mingw-w64/lib/gcc/i686-w64-mingw32/5.4.0/../../../../i686-w64-mingw32/bin/ld: warning: cannot find entry symbol _mainCRTStartup; defaulting to 00401000
libtool: link: ( cd ".libs" && rm -f "libevent.la" && ln -s "../libevent.la" "libevent.la" )
make[2]: Leaving directory `/var/tmp/build/libevent-2.0.22'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/var/tmp/build/libevent-2.0.22'

comment:2 Changed 2 years ago by cypherpunks

These flags are for .exe only (not .dll).
--pic-executable is a long name of -pie.
Your binutils patch could be replaced with -q (if it works on Windows).

comment:3 Changed 2 years ago by cypherpunks

(OT: Firefox 52ESR uses vulnerable libevent https://bugzilla.mozilla.org/show_bug.cgi?id=1331297
-Wl,--enable-auto-image-base -Xlinker --out-implib -Xlinker .libs/libevent.dll.a - for very ancient toolchains)

comment:4 Changed 2 years ago by gk

Keywords: TorBrowserTeam201710 added; TorBrowserTeam201709 removed

Items for October 2017

comment:5 Changed 2 years ago by boklm

Resolution: wontfix
Status: assignedclosed

The binutils patch has been fixed to work on 64 bit builds in #23228, so we can close this ticket.

Note: See TracTickets for help on using tickets.