From: "Yann E. MORIN" <yann.morin.1998@free.fr>
To: Giulio Benetti <giulio.benetti@benettiengineering.com>
Cc: Will Newton <will.newton@gmail.com>,
Johan Oudinet <johan.oudinet@gmail.com>,
Thomas Petazzoni <thomas.petazzoni@bootlin.com>,
buildroot@buildroot.org
Subject: Re: [Buildroot] [PATCH] package/erlang-rebar: fix linking failure on shared library
Date: Tue, 28 Dec 2021 22:49:35 +0100 [thread overview]
Message-ID: <20211228214935.GC3390456@scaer> (raw)
In-Reply-To: <20211219070332.2642029-1-giulio.benetti@benettiengineering.com>
Giulio, All,
On 2021-12-19 08:03 +0100, Giulio Benetti spake thusly:
> Add patch to fix linking failure while creating shared library. As
> explained in the patch itself, there is no specific variable for when we
> link a shared library and rebar itself rely on the default LDFLAGS. Since
> by default every CFLAGS is filled with -fPIC we need to make sure that
> every LDFLAGS is the same, so not having any other *_LDFLAGS variable to
> fille with -fPIC let's add it to the main LDFLAGS.
>
> Fixes:
> http://autobuild.buildroot.net/results/602/60296a48210e7ffc6bc9fa50ee586441a8957e85/
>
> Signed-off-by: Giulio Benetti <giulio.benetti@benettiengineering.com>
Even though I was not very happy with that solution, there is really no
better way, so: applied to master, thanks.
Regards,
Yann E. MORIN.
> ---
> ...ompiler-add-fPIC-to-LDFLAGS-by-defau.patch | 35 +++++++++++++++++++
> 1 file changed, 35 insertions(+)
> create mode 100644 package/erlang-rebar/0001-src-rebar_port_compiler-add-fPIC-to-LDFLAGS-by-defau.patch
>
> diff --git a/package/erlang-rebar/0001-src-rebar_port_compiler-add-fPIC-to-LDFLAGS-by-defau.patch b/package/erlang-rebar/0001-src-rebar_port_compiler-add-fPIC-to-LDFLAGS-by-defau.patch
> new file mode 100644
> index 0000000000..a9c1670a1f
> --- /dev/null
> +++ b/package/erlang-rebar/0001-src-rebar_port_compiler-add-fPIC-to-LDFLAGS-by-defau.patch
> @@ -0,0 +1,35 @@
> +From 7f54d48ee5db037778ead310e0b8278f3fe70b41 Mon Sep 17 00:00:00 2001
> +From: Giulio Benetti <giulio.benetti@benettiengineering.com>
> +Date: Sun, 19 Dec 2021 07:52:55 +0100
> +Subject: [PATCH] src/rebar_port_compiler: add -fPIC to LDFLAGS by default
> +
> +Since both DRV_CFLAGS and EXE_CFLAGS list -fPIC we need also the LDFLAGS
> +to follow them. Unfortunately adding -fPIC only to DRV_LDFLAGS and
> +EXE_LDFLAGS is not sufficient, since when linking as a library(.so) it
> +doesn't take into account those variables. Since -fPIC is needed by default
> +by any kind of linking, let's add it to the general -fPIC. Rebar seems to
> +link libraries without taking into account any variable listed in:
> +src/rebar_port_compiler.erl
> +this after testing and tracing for every variable.
> +
> +Signed-off-by: Giulio Benetti <giulio.benetti@benettiengineering.com>
> +---
> + src/rebar_port_compiler.erl | 2 ++
> + 1 file changed, 2 insertions(+)
> +
> +diff --git a/src/rebar_port_compiler.erl b/src/rebar_port_compiler.erl
> +index 9679c80..bd08b21 100644
> +--- a/src/rebar_port_compiler.erl
> ++++ b/src/rebar_port_compiler.erl
> +@@ -645,6 +645,8 @@ default_env() ->
> + {"OBJCOPY", get_tool(Arch, "objcopy", "objcopy")},
> + {"OBJDUMP", get_tool(Arch, "objdump", "objdump")},
> +
> ++ {"LDFLAGS", "-fPIC $LDFLAGS"},
> ++
> + {"DRV_CXX_TEMPLATE",
> + "$CXX -c $CXXFLAGS $DRV_CFLAGS $PORT_IN_FILES -o $PORT_OUT_FILE"},
> + {"DRV_CC_TEMPLATE",
> +--
> +2.25.1
> +
> --
> 2.25.1
>
> _______________________________________________
> buildroot mailing list
> buildroot@buildroot.org
> https://lists.buildroot.org/mailman/listinfo/buildroot
--
.-----------------.--------------------.------------------.--------------------.
| Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ |
| +33 561 099 427 `------------.-------: X AGAINST | \e/ There is no |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. |
'------------------------------^-------^------------------^--------------------'
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
prev parent reply other threads:[~2021-12-28 21:49 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-10-14 21:54 [Buildroot] [PATCH 1/2] package/erlang-jiffy: fix build failure due to lack of -fPIC Giulio Benetti
2021-10-14 21:54 ` [Buildroot] [PATCH 2/2] package/erlang-jiffy: bump version to 1.0.9 Giulio Benetti
2021-12-20 9:34 ` Giulio Benetti
2021-12-28 22:06 ` Thomas Petazzoni
2021-10-14 21:54 ` [Buildroot] [PATCH 2/2] package/erlang-jiffy: fix build failure due to lack of -fPIC Giulio Benetti
2021-10-14 21:57 ` Giulio Benetti
2021-10-18 20:14 ` [Buildroot] [PATCH 1/2] " Thomas Petazzoni
2021-12-17 20:49 ` Thomas Petazzoni
2021-12-17 21:14 ` Giulio Benetti
2021-12-19 7:03 ` [Buildroot] [PATCH] package/erlang-rebar: fix linking failure on shared library Giulio Benetti
2021-12-19 8:08 ` Yann E. MORIN
2021-12-27 0:08 ` Giulio Benetti
2021-12-28 21:49 ` Yann E. MORIN [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20211228214935.GC3390456@scaer \
--to=yann.morin.1998@free.fr \
--cc=buildroot@buildroot.org \
--cc=giulio.benetti@benettiengineering.com \
--cc=johan.oudinet@gmail.com \
--cc=thomas.petazzoni@bootlin.com \
--cc=will.newton@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox