All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Yann E. MORIN" <yann.morin.1998@free.fr>
To: Giulio Benetti <giulio.benetti@benettiengineering.com>
Cc: Johan Oudinet <johan.oudinet@gmail.com>,
	Will Newton <will.newton@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: Sun, 19 Dec 2021 09:08:17 +0100	[thread overview]
Message-ID: <20211219080817.GA2603@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.

OK, I think I got the hang of it. But see below...

> Fixes:
> http://autobuild.buildroot.net/results/602/60296a48210e7ffc6bc9fa50ee586441a8957e85/
> 
> Signed-off-by: Giulio Benetti <giulio.benetti@benettiengineering.com>
> ---
>  ...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"},

Don't we want to match EXE_CFLAGS and DRV_CFLAGS, and use DRV_LDFLAGS
and EXE_LDFLAGS instwead of the generic LDFLAGS? This way, LDFLAGS is
left alone, like are CFLAGS and CXXFLAGS, and the internal variables
are used.

EXE_LDFLAGS and DRV_LDFLAGS are already defined, lines 665 and 667.

Regards,
Yann E. MORIN.

> +      {"DRV_CXX_TEMPLATE",
> +       "$CXX -c $CXXFLAGS $DRV_CFLAGS $PORT_IN_FILES -o $PORT_OUT_FILE"},
> +      {"DRV_CC_TEMPLATE",
> +-- 
> +2.25.1
> +
> -- 
> 2.25.1
> 

-- 
.-----------------.--------------------.------------------.--------------------.
|  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

  reply	other threads:[~2021-12-19  8:08 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 [this message]
2021-12-27  0:08         ` Giulio Benetti
2021-12-28 21:49       ` Yann E. MORIN

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=20211219080817.GA2603@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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.