Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

cannot make "'libmill/.libs/libmill.a' failed" #21

Open
Diego-OT opened this issue Jun 30, 2021 · 4 comments
Open

cannot make "'libmill/.libs/libmill.a' failed" #21

Diego-OT opened this issue Jun 30, 2021 · 4 comments

Comments

@Diego-OT
Copy link

Diego-OT commented Jun 30, 2021

Im using ubuntu 18

git clone https://github.com/cloudflare/mmproxy.git --recursive
cd mmproxy
make

Error:
`make -C libmill distclean

make[1]: Entering directory '/home/mmproxy/libmill'

make[1]: *** No rule to make target 'distclean'. Stop.

make[1]: Leaving directory '/home/mmproxy/libmill'

Makefile:38: recipe for target 'libmill/.libs/libmill.a' failed

make: [libmill/.libs/libmill.a] Error 2 (ignored)

if [ ! -e libmill/configure ]; then (cd libmill && ./autogen.sh); fi
./autogen.sh: 3: ./autogen.sh: autoreconf: not found

Makefile:38: recipe for target 'libmill/.libs/libmill.a' failed

make: *** [libmill/.libs/libmill.a] Error 127
`

@shrey2682
Copy link

shrey2682 commented Jul 9, 2021

Same issue. I then installed the below additional packages on my Ubuntu 20.04.2 server:


sudo apt-get install
g++
libboost-all-dev
libevent-dev
libdouble-conversion-dev
libgoogle-glog-dev
libgflags-dev
libiberty-dev
liblz4-dev
liblzma-dev
libsnappy-dev
zlib1g-dev
binutils-dev
libjemalloc-dev
libssl-dev
pkg-config
libunwind-dev
libgtk-3-dev
autoconf
automake
cmake
make


However, after this I ran into the following issue:


make[1]: Entering directory '/home/ubuntu/temp/mmproxy/libmill'
CC libmill_la-chan.lo
CC libmill_la-cr.lo
CC libmill_la-debug.lo
CC libmill_la-ip.lo
In file included from ip.c:44:
ip.c: In function ‘mill_ipremote_’:
dns/dns.h:1009:24: error: lvalue required as unary ‘&’ operand
1009 | #define dns_opts(...) (&dns_quietinit((struct dns_options)DNS_OPTS_INIT(VA_ARGS)))
| ^
ip.c:268:31: note: in expansion of macro ‘dns_opts’
268 | mill_dns_hints, NULL, dns_opts(), &rc);
| ^~~~~~~~
make[1]: *** [Makefile:1237: libmill_la-ip.lo] Error 1
make[1]: Leaving directory '/home/ubuntu/temp/mmproxy/libmill'
make: *** [Makefile:41: libmill/.libs/libmill.a] Error 2


Any suggestions on how to fix this?

@mrbluecoat
Copy link

mrbluecoat commented Sep 11, 2021

I get the same error as @shrey2682

update: the go version seems more stable:

go get github.com/path-network/go-mmproxy
mv ~/go/bin/go-mmproxy /usr/local/bin/

@coolaj86
Copy link

Same here, codeblocking for readability:

make[1]: Entering directory '/app/mmproxy/libmill'
  CC       libmill_la-chan.lo
  CC       libmill_la-cr.lo
  CC       libmill_la-debug.lo
  CC       libmill_la-ip.lo
In file included from ip.c:44:
ip.c: In function 'mill_ipremote_':
dns/dns.h:1009:24: error: lvalue required as unary '&' operand
 1009 | #define dns_opts(...) (&dns_quietinit((struct dns_options)DNS_OPTS_INIT(__VA_ARGS__)))
      |                        ^
ip.c:268:31: note: in expansion of macro 'dns_opts'
  268 |         mill_dns_hints, NULL, dns_opts(), &rc);
      |                               ^~~~~~~~
make[1]: *** [Makefile:1239: libmill_la-ip.lo] Error 1
make[1]: Leaving directory '/app/mmproxy/libmill'
make: *** [Makefile:41: libmill/.libs/libmill.a] Error 2

@fifopipo
Copy link

fifopipo commented Jan 15, 2024

Use this patch to proceed. Fyi, not a dev.

--- dns.h.ori	2024-01-15 13:55:52.380476121 +0000
+++ dns.h	2024-01-15 13:56:47.555175431 +0000
@@ -1006,6 +1006,14 @@
 #define DNS_OPTS_INITIALIZER  { DNS_OPTS_INITIALIZER_ }
 #define DNS_OPTS_INIT(...)    { DNS_OPTS_INITIALIZER_, __VA_ARGS__ }
 
+#if __GNUC__ < 9
+/* GCC parses the _Pragma operator less elegantly than clang. */
+#define dns_quietinit(...) \
+        __extension__ ({ DNS_PRAGMA_PUSH DNS_PRAGMA_QUIET __VA_ARGS__; DNS_PRAGMA_POP })
+#else
+#define dns_quietinit(...) __VA_ARGS__
+#endif
+
 #define dns_opts(...) (&dns_quietinit((struct dns_options)DNS_OPTS_INIT(__VA_ARGS__)))
 
 struct dns_options {

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants