-
-
Notifications
You must be signed in to change notification settings - Fork 43
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Mips32r2 #203
base: main
Are you sure you want to change the base?
Commits on Jun 19, 2018
-
initial mips platform support, import from issue 48
The target mips32r2_dyn is tested to fully compile, but untested to run. Target mips32r2_static reaches kiwix-lib and fails linking pthread. For further details see the comments in #48. Some known problems: * hardcoded values of icudt58l in some dependent packages unnoticable during compile, but will affect runtimes * the libdir name problem x86_64-linux-gnu <> mips-linux-gnu * pthread linking problem when compiling kiwix-lib statically may be a meson issue, since it somewhat claims to properly handle pthread linking in cross-compile situations; there are some url links in #48 laying out a proper workaround.
Configuration menu - View commit details
-
Copy full SHA for c1f281e - Browse repository at this point
Copy the full SHA c1f281eView commit details
Commits on Jun 21, 2018
-
mips uclibc target mips32r2_uclibc_dyn added
ATM the uclibc toolchain buildable by freetz (see https://github.com/freetz/freetz) is used. When configuring freetz make sure FREETZ_LIB_libuClibc__WITH_WCHAR=y FREETZ_BUILD_TOOLCHAIN=y are set, so uClibc++ as part of the toolchain is built with wchar_t support. Eventually root_path definition in mips32r2.py (hardcoded for now) needs to be adjusted. Some (all?) prebuilt, downloadable tcs of the freetz project do not have wchar support in uClibc++ (but uclibc does). KNOWN PROBLEMS: xapian-core currently does not compile with uClibc++
Configuration menu - View commit details
-
Copy full SHA for 2024187 - Browse repository at this point
Copy the full SHA 2024187View commit details
Commits on Jun 23, 2018
-
cleanup mips32r2.py and use python class inheritance for flavors
added mips32r2_uclibc_gclibcxx_dyn, (preferred atm, tested on prod hw) mips32r2_uclibc_gclibcxx_static targets (shared) and renamed previous uclibc ones to mips32r2_uclibc_uclibcxx_dyn, mips32r2_uclibc_uclibcxx_static for clarity (i.e. non-shared, pure ones) reworked builder classes to use inheritance of properties and methods (instead of copying boiler plate code) mips32r2_uclibc_gclibcxx_dyn target compiles and tested to run on production targets such as avm routers modified with a freetz env. See cm8/freetz@41d97c3 for one of many possible projects to build a working toolchain with. In short - git clone - umask 0022 - make menuconfig (choose expert, disable toolchain download and let the toolchain/make scripts built a gcc-5.x one, do not forget to set FREETZ_LIB_libuClibc__WITH_WCHAR=y) - read the commit message for further info on long double math peculiarities - tested here with 0.9.33.2 Remember that swap will need to be running on the box, or else kiwix-serve is likely to quit with "invalid lzma stream in cluster" errors (if memory is too low). If the box lacks library support such as libstdc++.so*, you can copy them from the target toolchain libdir over to BUILD_mips32r2_uclibc_gclibcxx_dyn/INSTALL/lib if there are unsatisfied dependencies at runtime. (Which libraries need to be supplemented this way depends on your firmware and/or freetz configuration). Another issue is the execution in non-standard installation directories. LD_LIBRARY_PATH env needs to point to "our" lib directory. If you tar INSTALL/ dir, transport the result to an embedded device, untar and wan't to run from there, it is best to wrap all the elf binaries with a shell script that correctly sets LD_LIBRARY_PATH. This step has been automated, but needs testing, see kiwixbuild/patches/fixenv-run-in-nonstd-installdir.sh for details. This fixenv script is copied to INSTALL/bin during the build and it should be run on the box, if kiwix-tools is to reside in nonstd location (i.e. if files are not installed or installable to /bin, /lib or their usr/ pendants). Feel free to improve on automation of the necessary setup steps to make mips port build and deployment easier.
Configuration menu - View commit details
-
Copy full SHA for 4cbbf23 - Browse repository at this point
Copy the full SHA 4cbbf23View commit details
Commits on Jun 24, 2018
-
fix libdir name issue, copy tc libs for production targets
The following applies to mips32r2_uclibc_glibcxx_dyn target, only: - libstdc++.so* tc libs are copied to INSTALL/lib/<full-arch> - i.e. there is an example showing how to copy other libs from the toolchain to supplement the installation files (in case they are found to be missing on a target machine) - if target already supplies libstdc++.so*, copied ones will be preferred for kiwix-tools binaries (when run from a non-std installation directory on the target), drawback in this case is extra space occupied by the lib, but the gain is less hazzle on target boxes that lack libstdc++.so* - comment or modify the lines in mips32r2.py accordingly to the setup of your mips target
Configuration menu - View commit details
-
Copy full SHA for 2751616 - Browse repository at this point
Copy the full SHA 2751616View commit details -
avoid heredoc expanding variables in fixenv-nonst-libdir script
necessary to output run-nonroot script correctly
Configuration menu - View commit details
-
Copy full SHA for 615e994 - Browse repository at this point
Copy the full SHA 615e994View commit details -
rework fixenv-nonstd-libdir script
the script won't create another file (run-nonroot previously) and instead carry out environment setup itself for the binary links pointing at it - it's more readable and smaller this way rework mips32r2.py file copy def - may be useful in other files, eventually transport this functionality to base.py (!?) later on, after this branch is merged to master
Configuration menu - View commit details
-
Copy full SHA for 26e6b81 - Browse repository at this point
Copy the full SHA 26e6b81View commit details -
Configuration menu - View commit details
-
Copy full SHA for 673a37d - Browse repository at this point
Copy the full SHA 673a37dView commit details
Commits on Jun 25, 2018
-
Configuration menu - View commit details
-
Copy full SHA for 99d3c4b - Browse repository at this point
Copy the full SHA 99d3c4bView commit details