Set locale related environment variables in debugglibc.sh

Message ID 20200923160655.GA16688@aloka.lostca.se
State Superseded
Headers
Series Set locale related environment variables in debugglibc.sh |

Commit Message

Arjun Shankar Sept. 23, 2020, 4:06 p.m. UTC
  From: Arjun Shankar <arjun@redhat.com>

Tests and binaries that use locale related functions need to run in the
correct locale environment when being debugged via debugglibc.sh. This
commit sets up the environment, specifically: GCONV_PATH, LOCPATH, and
LC_ALL for such tests and binaries when they are being debugged outside
of a test container.
---
 Makefile | 9 +++++++++
 1 file changed, 9 insertions(+)
  

Comments

Carlos O'Donell Sept. 24, 2020, 1:54 a.m. UTC | #1
On 9/23/20 12:06 PM, Arjun Shankar wrote:
> From: Arjun Shankar <arjun@redhat.com>
> 
> Tests and binaries that use locale related functions need to run in the
> correct locale environment when being debugged via debugglibc.sh. This
> commit sets up the environment, specifically: GCONV_PATH, LOCPATH, and
> LC_ALL for such tests and binaries when they are being debugged outside
> of a test container.

OK to commit.

Reviewed-by: Carlos O'Donell <carlos@redhat.com>

> ---
>  Makefile | 9 +++++++++
>  1 file changed, 9 insertions(+)
> 
> diff --git a/Makefile b/Makefile
> index 6dcfe40c25..e047e504be 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -305,6 +305,15 @@ then
>    exit 1
>  fi
>  
> +# Container tests needing locale data should install them in-container.

Agreed. And any non-SUPPORTED locales can be built outside of the container
and then installed by the container script. We should try hard to make the
container tests look like normal installs.

> +# Other tests/binaries need to use locale data from the build tree.
> +if [ "$$CONTAINER" == false ]
> +then

> +  ENVVARS="GCONV_PATH=$${BUILD_DIR}/iconvdata $$ENVVARS"

OK.

> +  ENVVARS="LOCPATH=$${BUILD_DIR}/localedata $$ENVVARS"

OK.

> +  ENVVARS="LC_ALL=C $$ENVVARS"

OK.

> +fi
> +
>  # Expand environment setup command
>  if [ -v ENVVARS ]
>  then
>
  
Andreas Schwab Sept. 24, 2020, 7:51 a.m. UTC | #2
On Sep 23 2020, Arjun Shankar wrote:

> diff --git a/Makefile b/Makefile
> index 6dcfe40c25..e047e504be 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -305,6 +305,15 @@ then
>    exit 1
>  fi
>  
> +# Container tests needing locale data should install them in-container.
> +# Other tests/binaries need to use locale data from the build tree.
> +if [ "$$CONTAINER" == false ]

`==' is non-POSIX.

Andreas.
  
Arjun Shankar Sept. 24, 2020, 12:55 p.m. UTC | #3
On Thu, Sep 24, 2020 at 09:51:11AM +0200, Andreas Schwab wrote:

> > +# Container tests needing locale data should install them in-container.
> > +# Other tests/binaries need to use locale data from the build tree.
> > +if [ "$$CONTAINER" == false ]
> 
> `==' is non-POSIX.

Thanks, Andreas. I'll replace with `='.
  
Carlos O'Donell Sept. 25, 2020, 3:18 a.m. UTC | #4
On 9/24/20 8:55 AM, Arjun Shankar wrote:
> On Thu, Sep 24, 2020 at 09:51:11AM +0200, Andreas Schwab wrote:
> 
>>> +# Container tests needing locale data should install them in-container.
>>> +# Other tests/binaries need to use locale data from the build tree.
>>> +if [ "$$CONTAINER" == false ]
>>
>> `==' is non-POSIX.
> 
> Thanks, Andreas. I'll replace with `='.
 
The whole of debugglibc.sh is a bash script and as such may use bash
constructs, and indeed has other instances of '=='.

However, there is value in simplifying this to make it POSIX shell
compatible.
  

Patch

diff --git a/Makefile b/Makefile
index 6dcfe40c25..e047e504be 100644
--- a/Makefile
+++ b/Makefile
@@ -305,6 +305,15 @@  then
   exit 1
 fi
 
+# Container tests needing locale data should install them in-container.
+# Other tests/binaries need to use locale data from the build tree.
+if [ "$$CONTAINER" == false ]
+then
+  ENVVARS="GCONV_PATH=$${BUILD_DIR}/iconvdata $$ENVVARS"
+  ENVVARS="LOCPATH=$${BUILD_DIR}/localedata $$ENVVARS"
+  ENVVARS="LC_ALL=C $$ENVVARS"
+fi
+
 # Expand environment setup command
 if [ -v ENVVARS ]
 then