You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@httpd.apache.org by Yann Ylavic <yl...@gmail.com> on 2017/09/08 15:14:55 UTC
Re: svn commit: r1807777 - /httpd/httpd/trunk/modules/md/Makefile.in
Hi Stefan,
On Fri, Sep 8, 2017 at 5:06 PM, <ic...@apache.org> wrote:
> Author: icing
> Date: Fri Sep 8 15:06:44 2017
> New Revision: 1807777
>
> URL: http://svn.apache.org/viewvc?rev=1807777&view=rev
> Log:
> On the trunk:
>
> mod_md: added necessary CPPFLAGS for a2md build.
Thanks, it fixed some APR dependencies for me.
Now I'm here:
|| *** Warning: Linking the shared library mod_md.la against the non-libtool
|| *** objects md_acme.o md_acme_acct.o md_acme_authz.o
md_acme_drive.o md_core.o md_curl.o md_crypt.o md_http.o md_json.o
md_jws.o md_log.o md_reg.o md_store.o md_store_fs.o md_util.o is not
portable!
|| /home/yle/bin/ld: error: md_json.o: requires dynamic R_X86_64_PC32
reloc against 'md_json_destroy' which may overflow at runtime;
recompile with -fPIC
|| /home/yle/bin/ld: error: md_reg.o: requires dynamic R_X86_64_PC32
reloc against 'md_reg_find_overlap' which may overflow at runtime;
recompile with -fPIC
|| /home/yle/bin/ld: error: md_util.o: requires dynamic R_X86_64_PC32
reloc against 'md_array_str_index' which may overflow at runtime;
recompile with -fPIC
|| collect2: error: ld returned 1 exit status
Any idea?
Re: svn commit: r1807777 - /httpd/httpd/trunk/modules/md/Makefile.in
Posted by Stefan Eissing <st...@greenbytes.de>.
Yann, thanks for testing. I had the build working on MacOS, but gcc on my
Ubuntu was not happy. The problem is something that plagued me already in
mod_http2: having the same source/objects shared in two link targets.
Previously, I build libmd.la and linked that to mod_md and a2md (the cmd
line util). libmd.la's objects were built with -prefer-non-pic by our
build system and linking that into mod_md.so was refused by Linux linker.
I did not manage to build a libmd.* that then gets statically linked into
mod_md and a2md and uses pic.
So, I added the objects themselves to the targets of mod_md and a2md. That
made it working on Linux (Ubuntu) and MacOS for me.
Why linking statically? I did not want to have to install a libmd.so in
the system and manage that. I just have some common code between a
module and a cmd line tool.
I'd really appreciate if someone with a deeper understanding of our
ancient build system could come up with a solution to this.
> Am 08.09.2017 um 17:43 schrieb William A Rowe Jr <wr...@rowe-clan.net>:
>
> On Fri, Sep 8, 2017 at 10:14 AM, Yann Ylavic <yl...@gmail.com> wrote:
>> Hi Stefan,
>>
>> On Fri, Sep 8, 2017 at 5:06 PM, <ic...@apache.org> wrote:
>>> Author: icing
>>> Date: Fri Sep 8 15:06:44 2017
>>> New Revision: 1807777
>>>
>>> URL: http://svn.apache.org/viewvc?rev=1807777&view=rev
>>> Log:
>>> On the trunk:
>>>
>>> mod_md: added necessary CPPFLAGS for a2md build.
>>
>> Thanks, it fixed some APR dependencies for me.
>>
>> Now I'm here:
>>
>> || *** Warning: Linking the shared library mod_md.la against the non-libtool
>> || *** objects md_acme.o md_acme_acct.o md_acme_authz.o
>> md_acme_drive.o md_core.o md_curl.o md_crypt.o md_http.o md_json.o
>> md_jws.o md_log.o md_reg.o md_store.o md_store_fs.o md_util.o is not
>> portable!
>> || /home/yle/bin/ld: error: md_json.o: requires dynamic R_X86_64_PC32
>> reloc against 'md_json_destroy' which may overflow at runtime;
>> recompile with -fPIC
>> || /home/yle/bin/ld: error: md_reg.o: requires dynamic R_X86_64_PC32
>> reloc against 'md_reg_find_overlap' which may overflow at runtime;
>> recompile with -fPIC
>> || /home/yle/bin/ld: error: md_util.o: requires dynamic R_X86_64_PC32
>> reloc against 'md_array_str_index' which may overflow at runtime;
>> recompile with -fPIC
>> || collect2: error: ld returned 1 exit status
>>
>> Any idea?
I assume you had done a make clean? Those objects should have been build using pic now.
Re: svn commit: r1807777 - /httpd/httpd/trunk/modules/md/Makefile.in
Posted by William A Rowe Jr <wr...@rowe-clan.net>.
On Fri, Sep 8, 2017 at 10:14 AM, Yann Ylavic <yl...@gmail.com> wrote:
> Hi Stefan,
>
> On Fri, Sep 8, 2017 at 5:06 PM, <ic...@apache.org> wrote:
>> Author: icing
>> Date: Fri Sep 8 15:06:44 2017
>> New Revision: 1807777
>>
>> URL: http://svn.apache.org/viewvc?rev=1807777&view=rev
>> Log:
>> On the trunk:
>>
>> mod_md: added necessary CPPFLAGS for a2md build.
>
> Thanks, it fixed some APR dependencies for me.
>
> Now I'm here:
>
> || *** Warning: Linking the shared library mod_md.la against the non-libtool
> || *** objects md_acme.o md_acme_acct.o md_acme_authz.o
> md_acme_drive.o md_core.o md_curl.o md_crypt.o md_http.o md_json.o
> md_jws.o md_log.o md_reg.o md_store.o md_store_fs.o md_util.o is not
> portable!
> || /home/yle/bin/ld: error: md_json.o: requires dynamic R_X86_64_PC32
> reloc against 'md_json_destroy' which may overflow at runtime;
> recompile with -fPIC
> || /home/yle/bin/ld: error: md_reg.o: requires dynamic R_X86_64_PC32
> reloc against 'md_reg_find_overlap' which may overflow at runtime;
> recompile with -fPIC
> || /home/yle/bin/ld: error: md_util.o: requires dynamic R_X86_64_PC32
> reloc against 'md_array_str_index' which may overflow at runtime;
> recompile with -fPIC
> || collect2: error: ld returned 1 exit status
>
> Any idea?
Missing CFLAGS or wrong CC invocation.
Re: svn commit: r1807777 - /httpd/httpd/trunk/modules/md/Makefile.in
Posted by Luca Toscano <to...@gmail.com>.
2017-09-11 10:23 GMT+02:00 Stefan Eissing <st...@greenbytes.de>:
>
> > Am 08.09.2017 um 17:14 schrieb Yann Ylavic <yl...@gmail.com>:
> >
> > Hi Stefan,
> >
> > On Fri, Sep 8, 2017 at 5:06 PM, <ic...@apache.org> wrote:
> >> Author: icing
> >> Date: Fri Sep 8 15:06:44 2017
> >> New Revision: 1807777
> >>
> >> URL: http://svn.apache.org/viewvc?rev=1807777&view=rev
> >> Log:
> >> On the trunk:
> >>
> >> mod_md: added necessary CPPFLAGS for a2md build.
> >
> > Thanks, it fixed some APR dependencies for me.
> >
> > Now I'm here:
> >
> > || *** Warning: Linking the shared library mod_md.la against the
> non-libtool
> > || *** objects md_acme.o md_acme_acct.o md_acme_authz.o
> > md_acme_drive.o md_core.o md_curl.o md_crypt.o md_http.o md_json.o
> > md_jws.o md_log.o md_reg.o md_store.o md_store_fs.o md_util.o is not
> > portable!
> > || /home/yle/bin/ld: error: md_json.o: requires dynamic R_X86_64_PC32
> > reloc against 'md_json_destroy' which may overflow at runtime;
> > recompile with -fPIC
> > || /home/yle/bin/ld: error: md_reg.o: requires dynamic R_X86_64_PC32
> > reloc against 'md_reg_find_overlap' which may overflow at runtime;
> > recompile with -fPIC
> > || /home/yle/bin/ld: error: md_util.o: requires dynamic R_X86_64_PC32
> > reloc against 'md_array_str_index' which may overflow at runtime;
> > recompile with -fPIC
> > || collect2: error: ld returned 1 exit status
> >
> > Any idea?
>
> Really did a buildconf && configure && make clean? This worked
> for others...
Just tried and this is what I get:
./buildconf --with-apr=srclib/apr --with-apr-util=srclib/apr-uti
./configure --with-included-apr --enable-mods-shared=most
make clean && make
Debian Jessie (Vagrant image)
/home/vagrant/httpd-trunk/srclib/apr/libtool --silent --mode=link gcc
-I/usr/include/x86_64-linux-gnu -g -O2 -pthread -lssl -lcrypto -luuid
-lrt -lcrypt -lpthread -ldl -ljansson -lcurl -o mod_md.la -rpath
/usr/local/apache2/modules -module -avoid-version mod_md.lo
mod_md_config.lo mod_md_os.lo md_acme.o md_acme_acct.o md_acme_authz.o
md_acme_drive.o md_core.o md_curl.o md_crypt.o md_http.o md_json.o md_jws.o
md_log.o md_reg.o md_store.o md_store_fs.o md_util.o
*** Warning: Linking the shared library mod_md.la against the non-libtool
*** objects md_acme.o md_acme_acct.o md_acme_authz.o md_acme_drive.o
md_core.o md_curl.o md_crypt.o md_http.o md_json.o md_jws.o md_log.o
md_reg.o md_store.o md_store_fs.o md_util.o is not portable!
Luca
Re: svn commit: r1807777 - /httpd/httpd/trunk/modules/md/Makefile.in
Posted by Stefan Eissing <st...@greenbytes.de>.
Thanks!
> Am 11.09.2017 um 12:22 schrieb Luca Toscano <to...@gmail.com>:
>
>
>
> 2017-09-11 12:20 GMT+02:00 Yann Ylavic <yl...@gmail.com>:
> On Mon, Sep 11, 2017 at 12:14 PM, Yann Ylavic <yl...@gmail.com> wrote:
> >
> > Index: modules/md/Makefile.in
> > ===================================================================
> > --- modules/md/Makefile.in (revision 1807999)
> > +++ modules/md/Makefile.in (working copy)
> > @@ -41,7 +41,7 @@ a2md_OBJECTS = \
> > md_cmd_reg.c \
> > md_cmd_store.c
> >
> > -a2md: $(a2md_OBJECTS) $(COMMON_SHOBJECTS) md.h
> > +a2md: $(a2md_OBJECTS) $(COMMON_OBJECTS) $(COMMON_SHOBJECTS) md.h
> > $(LINK) $(a2md_CFLAGS) $(a2md_LTFLAGS) $(a2md_OBJECTS)
> > $(COMMON_OBJECTS) $(A2MD_LDADD) $(AP_LIBS)
> >
> > # top be installed in bin dir
> > _
> >
> > Looks good to commit?
>
> Committed in r1808005 for a better look (gmail mangled the above).
>
> Fixed the warning for me! Thanks!
>
> Luca
>
Re: svn commit: r1807777 - /httpd/httpd/trunk/modules/md/Makefile.in
Posted by Luca Toscano <to...@gmail.com>.
2017-09-11 12:20 GMT+02:00 Yann Ylavic <yl...@gmail.com>:
> On Mon, Sep 11, 2017 at 12:14 PM, Yann Ylavic <yl...@gmail.com>
> wrote:
> >
> > Index: modules/md/Makefile.in
> > ===================================================================
> > --- modules/md/Makefile.in (revision 1807999)
> > +++ modules/md/Makefile.in (working copy)
> > @@ -41,7 +41,7 @@ a2md_OBJECTS = \
> > md_cmd_reg.c \
> > md_cmd_store.c
> >
> > -a2md: $(a2md_OBJECTS) $(COMMON_SHOBJECTS) md.h
> > +a2md: $(a2md_OBJECTS) $(COMMON_OBJECTS) $(COMMON_SHOBJECTS) md.h
> > $(LINK) $(a2md_CFLAGS) $(a2md_LTFLAGS) $(a2md_OBJECTS)
> > $(COMMON_OBJECTS) $(A2MD_LDADD) $(AP_LIBS)
> >
> > # top be installed in bin dir
> > _
> >
> > Looks good to commit?
>
> Committed in r1808005 for a better look (gmail mangled the above).
>
Fixed the warning for me! Thanks!
Luca
Re: svn commit: r1807777 - /httpd/httpd/trunk/modules/md/Makefile.in
Posted by Yann Ylavic <yl...@gmail.com>.
On Mon, Sep 11, 2017 at 12:14 PM, Yann Ylavic <yl...@gmail.com> wrote:
>
> Index: modules/md/Makefile.in
> ===================================================================
> --- modules/md/Makefile.in (revision 1807999)
> +++ modules/md/Makefile.in (working copy)
> @@ -41,7 +41,7 @@ a2md_OBJECTS = \
> md_cmd_reg.c \
> md_cmd_store.c
>
> -a2md: $(a2md_OBJECTS) $(COMMON_SHOBJECTS) md.h
> +a2md: $(a2md_OBJECTS) $(COMMON_OBJECTS) $(COMMON_SHOBJECTS) md.h
> $(LINK) $(a2md_CFLAGS) $(a2md_LTFLAGS) $(a2md_OBJECTS)
> $(COMMON_OBJECTS) $(A2MD_LDADD) $(AP_LIBS)
>
> # top be installed in bin dir
> _
>
> Looks good to commit?
Committed in r1808005 for a better look (gmail mangled the above).
Re: svn commit: r1807777 - /httpd/httpd/trunk/modules/md/Makefile.in
Posted by Yann Ylavic <yl...@gmail.com>.
On Mon, Sep 11, 2017 at 10:23 AM, Stefan Eissing
<st...@greenbytes.de> wrote:
>
>> Am 08.09.2017 um 17:14 schrieb Yann Ylavic <yl...@gmail.com>:
>>
>> Hi Stefan,
>>
>> On Fri, Sep 8, 2017 at 5:06 PM, <ic...@apache.org> wrote:
>>> Author: icing
>>> Date: Fri Sep 8 15:06:44 2017
>>> New Revision: 1807777
>>>
>>> URL: http://svn.apache.org/viewvc?rev=1807777&view=rev
>>> Log:
>>> On the trunk:
>>>
>>> mod_md: added necessary CPPFLAGS for a2md build.
>>
>> Thanks, it fixed some APR dependencies for me.
>>
>> Now I'm here:
>>
>> || *** Warning: Linking the shared library mod_md.la against the non-libtool
>> || *** objects md_acme.o md_acme_acct.o md_acme_authz.o
>> md_acme_drive.o md_core.o md_curl.o md_crypt.o md_http.o md_json.o
>> md_jws.o md_log.o md_reg.o md_store.o md_store_fs.o md_util.o is not
>> portable!
>> || /home/yle/bin/ld: error: md_json.o: requires dynamic R_X86_64_PC32
>> reloc against 'md_json_destroy' which may overflow at runtime;
>> recompile with -fPIC
>> || /home/yle/bin/ld: error: md_reg.o: requires dynamic R_X86_64_PC32
>> reloc against 'md_reg_find_overlap' which may overflow at runtime;
>> recompile with -fPIC
>> || /home/yle/bin/ld: error: md_util.o: requires dynamic R_X86_64_PC32
>> reloc against 'md_array_str_index' which may overflow at runtime;
>> recompile with -fPIC
>> || collect2: error: ld returned 1 exit status
>>
>> Any idea?
>
> Really did a buildconf && configure && make clean? This worked
> for others...
Yes, but then make -j8...
Looks like a dependencies race, and indeed with the below it now works with -j.
Index: modules/md/Makefile.in
===================================================================
--- modules/md/Makefile.in (revision 1807999)
+++ modules/md/Makefile.in (working copy)
@@ -41,7 +41,7 @@ a2md_OBJECTS = \
md_cmd_reg.c \
md_cmd_store.c
-a2md: $(a2md_OBJECTS) $(COMMON_SHOBJECTS) md.h
+a2md: $(a2md_OBJECTS) $(COMMON_OBJECTS) $(COMMON_SHOBJECTS) md.h
$(LINK) $(a2md_CFLAGS) $(a2md_LTFLAGS) $(a2md_OBJECTS)
$(COMMON_OBJECTS) $(A2MD_LDADD) $(AP_LIBS)
# top be installed in bin dir
_
Looks good to commit?
Re: svn commit: r1807777 - /httpd/httpd/trunk/modules/md/Makefile.in
Posted by Stefan Eissing <st...@greenbytes.de>.
> Am 08.09.2017 um 17:14 schrieb Yann Ylavic <yl...@gmail.com>:
>
> Hi Stefan,
>
> On Fri, Sep 8, 2017 at 5:06 PM, <ic...@apache.org> wrote:
>> Author: icing
>> Date: Fri Sep 8 15:06:44 2017
>> New Revision: 1807777
>>
>> URL: http://svn.apache.org/viewvc?rev=1807777&view=rev
>> Log:
>> On the trunk:
>>
>> mod_md: added necessary CPPFLAGS for a2md build.
>
> Thanks, it fixed some APR dependencies for me.
>
> Now I'm here:
>
> || *** Warning: Linking the shared library mod_md.la against the non-libtool
> || *** objects md_acme.o md_acme_acct.o md_acme_authz.o
> md_acme_drive.o md_core.o md_curl.o md_crypt.o md_http.o md_json.o
> md_jws.o md_log.o md_reg.o md_store.o md_store_fs.o md_util.o is not
> portable!
> || /home/yle/bin/ld: error: md_json.o: requires dynamic R_X86_64_PC32
> reloc against 'md_json_destroy' which may overflow at runtime;
> recompile with -fPIC
> || /home/yle/bin/ld: error: md_reg.o: requires dynamic R_X86_64_PC32
> reloc against 'md_reg_find_overlap' which may overflow at runtime;
> recompile with -fPIC
> || /home/yle/bin/ld: error: md_util.o: requires dynamic R_X86_64_PC32
> reloc against 'md_array_str_index' which may overflow at runtime;
> recompile with -fPIC
> || collect2: error: ld returned 1 exit status
>
> Any idea?
Really did a buildconf && configure && make clean? This worked
for others...