aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lllc/main.cpp11
-rwxr-xr-xscripts/install_deps.sh22
-rw-r--r--solc/main.cpp11
3 files changed, 28 insertions, 16 deletions
diff --git a/lllc/main.cpp b/lllc/main.cpp
index a4c92d67..46416365 100644
--- a/lllc/main.cpp
+++ b/lllc/main.cpp
@@ -22,6 +22,7 @@
#include <fstream>
#include <iostream>
+#include <clocale>
#include <liblll/Compiler.h>
#include <libdevcore/CommonIO.h>
#include <libdevcore/CommonData.h>
@@ -52,10 +53,20 @@ void version()
exit(0);
}
+void setEnv() {
+ std::setlocale(LC_ALL, "C");
+#if !defined(WIN32) && !defined(MAC_OSX) && !defined(__FreeBSD__) && !defined(__OpenBSD__)
+ if (!std::setlocale(LC_ALL, "")) {
+ setenv("LC_ALL", "C", 1);
+ }
+#endif
+}
+
enum Mode { Binary, Hex, Assembly, ParseTree, Disassemble };
int main(int argc, char** argv)
{
+ setEnv();
unsigned optimise = 1;
string infile;
Mode mode = Hex;
diff --git a/scripts/install_deps.sh b/scripts/install_deps.sh
index 4fb948ed..a67fea82 100755
--- a/scripts/install_deps.sh
+++ b/scripts/install_deps.sh
@@ -98,7 +98,7 @@ case $(uname -s) in
brew update
brew upgrade
-
+
brew install boost
brew install cmake
brew install jsoncpp
@@ -127,14 +127,14 @@ case $(uname -s) in
#------------------------------------------------------------------------------
# Linux
#------------------------------------------------------------------------------
-
+
Linux)
case $(detect_linux_distro) in
#------------------------------------------------------------------------------
# Arch Linux
#------------------------------------------------------------------------------
-
+
Arch)
#Arch
echo "Installing solidity dependencies on Arch Linux."
@@ -143,7 +143,7 @@ case $(uname -s) in
# See https://wiki.archlinux.org/index.php/Official_repositories
sudo pacman -Sy \
base-devel \
- boost \
+ boost \
cmake \
git \
;;
@@ -158,7 +158,7 @@ case $(uname -s) in
# All our dependencies can be found in the Alpine Linux official repositories.
# See https://pkgs.alpinelinux.org/
-
+
apk update
apk add boost-dev build-base cmake jsoncpp-dev
@@ -231,7 +231,7 @@ case $(uname -s) in
# Install "normal packages"
# See https://fedoraproject.org/wiki/Package_management_system.
dnf install \
- autoconf \
+ autoconf \
automake \
boost-devel \
cmake \
@@ -326,16 +326,6 @@ case $(uname -s) in
sudo apt-get -y update
sudo apt-get -y install eth
- # And install the English language package and reconfigure the locales.
- # We really shouldn't need to do this, and should instead force our locales to "C"
- # within our application runtimes, because this issue shows up on multiple Linux distros,
- # and each will need fixing in the install steps, where we should really just fix it once
- # in the code.
- #
- # See https://github.com/ethereum/webthree-umbrella/issues/169
- sudo apt-get -y install language-pack-en-base
- sudo dpkg-reconfigure locales
-
;;
*)
diff --git a/solc/main.cpp b/solc/main.cpp
index eaada1c4..bc8bdc81 100644
--- a/solc/main.cpp
+++ b/solc/main.cpp
@@ -21,13 +21,24 @@
*/
#include "CommandLineInterface.h"
+#include <clocale>
#include <iostream>
#include <boost/exception/all.hpp>
using namespace std;
+void setEnv() {
+ std::setlocale(LC_ALL, "C");
+#if !defined(WIN32) && !defined(MAC_OSX) && !defined(__FreeBSD__) && !defined(__OpenBSD__)
+ if (!std::setlocale(LC_ALL, "")) {
+ setenv("LC_ALL", "C", 1);
+ }
+#endif
+}
+
int main(int argc, char** argv)
{
+ setEnv();
dev::solidity::CommandLineInterface cli;
if (!cli.parseArguments(argc, argv))
return 1;