crosstool-ng | A versatile toolchain generator | Blockchain library

 by   crosstool-ng Shell Version: crosstool-ng-1.25.0 License: Non-SPDX

kandi X-RAY | crosstool-ng Summary

kandi X-RAY | crosstool-ng Summary

crosstool-ng is a Shell library typically used in Blockchain applications. crosstool-ng has no bugs, it has no vulnerabilities and it has medium support. However crosstool-ng has a Non-SPDX License. You can download it from GitHub, GitLab.

Crosstool-NG aims at building toolchains. Toolchains are an essential component in a software development project. It will compile, assemble and link the code that is being developed. Some pieces of the toolchain will eventually end up in the resulting binaries: static libraries are but an example. Before reporting a bug, please read bug reporting guidelines. Bugs that do not provide the required information will be closed without explanation. Refer to documentation at crosstool-NG website for more information on how to configure, install and use crosstool-NG. Note 1: If you elect to build a uClibc-based toolchain, you will have to prepare a config file for uClibc with <= crosstool-NG-1.21.0. In >= crosstool-NG-1.22.0 you only need to prepare a config file for uClibc(or uClibc-ng) if you really need a custom config for uClibc. Note 2: If you call ct-ng --help you will get help for make(2). This is because ct-ng is in fact a make(2) script. There is no clean workaround for this.
Support
    Quality
      Security
        License
          Reuse

            kandi-support Support

              crosstool-ng has a medium active ecosystem.
              It has 1787 star(s) with 603 fork(s). There are 89 watchers for this library.
              OutlinedDot
              It had no major release in the last 12 months.
              There are 169 open issues and 677 have been closed. On average issues are closed in 70 days. There are 10 open pull requests and 0 closed requests.
              It has a neutral sentiment in the developer community.
              The latest version of crosstool-ng is crosstool-ng-1.25.0

            kandi-Quality Quality

              crosstool-ng has no bugs reported.

            kandi-Security Security

              crosstool-ng has no vulnerabilities reported, and its dependent libraries have no vulnerabilities reported.

            kandi-License License

              crosstool-ng has a Non-SPDX License.
              Non-SPDX licenses can be open source with a non SPDX compliant license, or non open source licenses, and you need to review them closely before use.

            kandi-Reuse Reuse

              crosstool-ng releases are available to install and integrate.
              Installation instructions, examples and code snippets are available.

            Top functions reviewed by kandi - BETA

            kandi's functional review helps you automatically verify the functionalities of the libraries and avoid rework.
            Currently covering the most popular Java, JavaScript and Python libraries. See a Sample of crosstool-ng
            Get all kandi verified functions for this library.

            crosstool-ng Key Features

            No Key Features are available at this moment for crosstool-ng.

            crosstool-ng Examples and Code Snippets

            No Code Snippets are available at this moment for crosstool-ng.

            Community Discussions

            QUESTION

            ffmpeg blured bars on vertical movie - Error while opening encoder
            Asked 2021-Mar-14 at 17:24

            I'm trying to use ffmpeg to prepare a mp4 file which is vertical recorded for upload to youtube. (on a synology DS220+) In the output file I want to have no black bars on the side but blured sodebars of the movie itself. This I'm trying to do whit this code (in the end I want to automate this process, but maybe there is a better way to do this):

            ...

            ANSWER

            Answered 2021-Mar-14 at 17:24

            Your ffmpeg is from 2015 and is too old. Try upgrading using SynoCommunity.

            Source https://stackoverflow.com/questions/66598423

            QUESTION

            Can't build cross compiler on Alpine targeting GNU based linux distros (eg. Debian)?
            Asked 2021-Mar-13 at 15:57

            I was trying to use crosstool-ng and get it work to build a cross compiler to target a gnu-based linux distros, since alpine comes with musl-libc I guess the cross tool couldn't directly use the type declarations used in gnu's.

            More precisely, at the time of installation of the linux headers when building the toolchain, the /usr/include/linux/types.h does not contain some type declarations which errors for:

            ...

            ANSWER

            Answered 2021-Mar-13 at 15:57

            After a lot of hit and trials, I was able to successfully build the toolchain.

            The musl-libc is smart, it defines those types itself. So the rpc headers https://code.woboq.org/userspace/glibc/sunrpc/rpc/types.h.html#77 here were conflicting with the types __u_char that GNU defines but does not define u_char and more.

            We can solve this by passing -D__daddr_t_defined -D__u_char_defined macros to the c flags on build.

            Source https://stackoverflow.com/questions/66564181

            QUESTION

            Unable to cross-compile Python-2.7.18 for x86,uclibc
            Asked 2020-Nov-19 at 11:20

            I'm trying to cross-compile Python 2.7.18 for an x86,uclibc machine using a crosstool-ng example toolchain. The commands used are the following:

            CONFIG_SITE=config.site CC=/home/msainz/x-tools/x86_64-unknown-linux-uclibc/bin/x86_64-unknown-linux-uclibc-gcc CXX=/home/msainz/x-tools/x86_64-unknown-linux-uclibc/bin/x86_64-unknown-linux-uclibc-g++ AR=/home/msainz/x-tools/x86_64-unknown-linux-uclibc/bin/x86_64-unknown-linux-uclibc-ar RANLIB=/home/msainz/x-tools/x86_64-unknown-linux-uclibc/bin/x86_64-unknown-linux-uclibc-ranlib READELF=/home/msainz/x-tools/x86_64-unknown-linux-uclibc/bin/x86_64-unknown-linux-uclibc-readelf LDFLAGS="-L/home/msainz/Projects/Selene/WP3/local/uclibc/base_rootfs/lib -L/home/msainz/Projects/Selene/WP3/local/uclibc/base_rootfs/usr/lib" CFLAGS="-I/home/msainz/Projects/Selene/WP3/local/uclibc/base_rootfs/usr/include -I/home/msainz/Projects/Selene/WP3/local/uclibc/base_rootfs/include" CPPFLAGS="-I/home/msainz/Projects/Selene/WP3/local/uclibc/base_rootfs/usr/include -I/home/msainz/Projects/Selene/WP3/local/uclibc/base_rootfs/include" ./configure --enable-shared --host=x86_64-unknown-linux-uclibc --build=x86_64 --disable-ipv6 --prefix=/home/msainz/Projects/python2_top_uclibc/

            followed by

            PATH=$PATH:/home/msainz/Projects/python2_top_glibc/bin/ make

            and

            PATH=$PATH:/home/msainz/Projects/python2_top_glibc/bin/ make install

            Execution ends with the following error:

            fi /home/msainz/x-tools/x86_64-unknown-linux-uclibc/bin/x86_64-unknown-linux-uclibc-gcc -L/home/msainz/Projects/Selene/WP3/local/uclibc/base_rootfs/lib -L/home/msainz/Projects/Selene/WP3/local/uclibc/base_rootfs/usr/lib -Xlinker -export-dynamic -o python \ Modules/python.o \ -L. -lpython2.7 -ldl -lpthread -lm _PYTHON_PROJECT_BASE=/home/msainz/Projects/Python-2.7.18 _PYTHON_HOST_PLATFORM=linux2-x86_64 PYTHONPATH=./Lib:./Lib/plat-linux2 python -S -m sysconfig --generate-posix-vars ;\ if test $? -ne 0 ; then \ echo "generate-posix-vars failed" ; \ rm -f ./pybuilddir.txt ; \ exit 1 ; \ fi python: error while loading shared libraries: libc.so.0: cannot open shared object file: No such file or directory generate-posix-vars failed make: *** [Makefile:523: pybuilddir.txt] Error 1

            python2_top_glibc dir contains a previous Python-2.7.18 installation but for native glibc which was compiled perfectly. libc.so.0 is in fact in the base_rootfs of target system, which is being linked in ./configure stage. I'm stuck at this at the moment. Any clue will be appreciated. Any additional info will be supplied on demand.

            Thanks in advance.

            ...

            ANSWER

            Answered 2020-Nov-19 at 10:41

            python: cannot open shared object file: No such file or directory

            This is a run-time loader error. You are trying to run a python executable that is linked against that libc.so.0.

            If this executable can actually run in your host environment, you can enable it by adding your base_rootfs library to LD_LIBRARY_PATH. Otherwise, you need to use your host python executable in this step of the build process, or disable it altogether.

            Source https://stackoverflow.com/questions/64909671

            QUESTION

            mp4 created by ffmpeg will not play with IPython.display.Video
            Asked 2020-Nov-18 at 23:49

            I'm creating a mp4 video from jpegs with ffmpeg, using the following command:

            ffmpeg -y -threads 0 -f image2 -i jpegs/%05d.jpg -framerate 10 video.mp4

            The resulting video will play fine with VLC, but will not play in a Jupyter notebook via:

            ...

            ANSWER

            Answered 2020-Nov-18 at 23:49
            algo-1-poqk5_1  | Stream mapping:
            algo-1-poqk5_1  |   Stream #0:0 -> #0:0 (mjpeg (native) -> mpeg4 (native))
            

            Source https://stackoverflow.com/questions/64899406

            QUESTION

            Unable to cross-compile dropbear for uclibc
            Asked 2020-Oct-28 at 11:20

            I am trying to cross-compile Dropbear for an x86 machine where glibc is missing and instead, uclibc is being used. For that aim, I have cross-compiled zlib for this same instruction set using a custom crosstool-ng toolchain and installed it to a custom location.

            ...

            ANSWER

            Answered 2020-Oct-28 at 11:20

            Solved the problem adding --with-zlib=/home/msainz/Projects/zlib_install/ to the ./configure call.

            Source https://stackoverflow.com/questions/64570046

            QUESTION

            Beaglebone Black : Could not display u-boot prompt
            Asked 2020-Oct-27 at 11:34

            I'm studying with a Mastering Embedded Linux Programming second edition

            can't see the u-boot prompt (U-Boot#)

            I used u-boot v2020.07, crosstool-ng v1.24.0 and copied MLO, u-boot.img to sd card.

            How can I solve this problem?

            thanks.

            ...

            ANSWER

            Answered 2020-Oct-27 at 11:34

            This may be that the prompt you are getting is the the one you were expecting, but you definitively got a prompt from u-boot, i.e. the final => in the output you posted.

            If you enter help then press enter, you should get the list of available commands.

            This book is five years old now, and you are using u-boot 2020.07, this may explain the discrepancy.

            The author may have customized the prompt message in the u-boot he compiled as well: you can do the same by adding a adding/modifying the value in the CONFIG_SYS_PROMPT symbol definition in the configuration file you used, say configs/am335x_evm_defconfig

            Source https://stackoverflow.com/questions/64457216

            QUESTION

            Can't get U-boot running on Raspberry PI 4B. What are the absolute necessities?
            Asked 2020-Sep-24 at 18:53

            I saw a few posts regarding this topic, but nothing really helped my cause, and so restating my problem here. 

            I would like to build my own toolchain, U-boot and the mainline Linux kernel to be ported on a particular processor. Since I currently am in possession of a Raspberry Pi 4B, I decided to use it to test my binaries stage-by-stage on it.

            I performed the following so far:

            1. Built a 64-bit toolchain using Crosstool-ng (v1.24.0) - Got \x-tools\aarch64-rpi3-linux-gnu
            2. Cloned U-boot and built v2020.07 version thereby generating u-boot.bin + other files(Built using rpi_4_defconfig and rpi_arm64_defconfig)
            3. Cloned Linux Kernel (v5.4.65 and v5.8.9), added bcm2711_defconfig in arch/arm64/configs from the Raspberry Pi repositories and built the Linux Kernel - generating vmlinux, Image, Image.gz, System.map, bcm2711-rpi-4-b.dtb + other files
            4. Created two partitions boot (FAT32), rootfs (Ext4) on my 32-GB SD card
            5. Copied u-boot.bin, Kernel images, start4.elf, fixup4.dat into the boot partition
            6. Have this in config.txt//config.txt
            Uncomment below to use your custom named kernel

            kernel=u-boot.bin

            Serial console output!

            enable_uart=1 7. Tried connecting RPi to the monitor with HDMI cable

            What I see:  The device seems to switch on, I see some quick green LED blinks, and then it is the red LED only that keeps steady. The monitor gets signal indicated by the fact that it brightens, but the screen is blank. I expected a command prompt with UART > or something, but nothing came. 

            Questions:

            1. Can someone comment what is missing on my side?
            2. What are the absolute minimum stuff to get an own U-Boot, own Linux Kernel and a root FS running on a Raspberry Pi 4B? (with regards to .elf, fix*.dat, etc., + the settings on config.txt, cmdline.txt? )
            ...

            ANSWER

            Answered 2020-Sep-24 at 18:53

            I hope this answers the U-Boot side of the question:

            The following worked for me to boot a 1 GiB Raspberry 4 using a 64bit Raspbian kernel:

            Build u-boot v2020.10-rc5 (on Debian Bullseye with GCC 10).

            Source https://stackoverflow.com/questions/64014958

            QUESTION

            fsanitize=undefined causes linker errors
            Asked 2020-Sep-14 at 17:49

            I'm trying to compile a program using -fsanitize=undefined using the conda g++ compiler. I'm running into `__ubsan_handle_type_mismatch' linker errors. I've used the flags in the compiles and the linking as suggested in:

            including adding -lubsan to the end of the link and compile commands which I know isn't recommended but I had no success. I've also made sure my LD_LIBRARY_PATH is empty so that there isn't any trouble coming from that aspect.

            A minimal example problem including the configuration of my python environment is below

            vehicles.h

            ...

            ANSWER

            Answered 2020-Sep-14 at 17:49

            There could be a few possible issues.

            Channel Mixing

            Missing references in shared objects is a typical symptom of mixing package builds that come from different channels. This is because different channels use different build stacks and so symbols may have different names in shared objects compiled under those stacks.

            Try to source as many of the packages you use from a single channel. Since most people often need at least one package that is only on conda-forge, the most generic solution is to give conda-forge priority when creating the environment, i.e., try

            Source https://stackoverflow.com/questions/63888228

            QUESTION

            Cross compiling with CMake: linker errors
            Asked 2020-Jul-23 at 05:39

            I am attempting to cross compile a project for my raspberry pi (32 bit armv8) on my ubuntu machine. I set up a toolchain using crosstool-NG and compiling works, but linking fails. My CMake toolchain file is as follows:

            ...

            ANSWER

            Answered 2020-Jul-21 at 23:36

            You need to use static library instead. then the executable will include the binary of the libraries. But keep in mind the executable file will be bigger ( depends obviously which lib...). When you using cross compile, you should check that the libraries you use exist in the other environment you execute the program. The solution will be to add STATIC word according to CmakeList.txt file

            Source https://stackoverflow.com/questions/63024006

            QUESTION

            why must gnu binutils be configured for a spefic target. What's going on underneath
            Asked 2020-Mar-11 at 15:42

            I am messing around with creating my own custom gcc toolchain for an arm Cortex-A5 cpu, and I am trying to dive as deeply as possible into each step. I have deliberately avoided using crosstool-ng or other tools to assist, in order to get a better understanding of what is going on in the process of creating a toolchain.

            One thing stumples me though. During configuration and building of binutils, I need to specify a target (--target). This target can be either the classic host-tuple (ex: arm-none-linux-gnuabi) or a specific type, something like i686-elf for example.

            Why is this target needed? and what does it specifically do with the generated "as" and "ld" programs built by binutils?

            For example, if I build it with arm-none-linux-gnueabi, it looks like the resulting "as" program supports every arm instruction set under the sun (armv4t, armv5, e.t.c.).

            Is it simply for saving space in the resulting executable? Or is something more going on?

            I would get it, if I configured the binutils for a specific instruction set for example. Build me an assembler that understands armv4t instructions.

            Looking through the source of binutils and gas specifically, it looks like the host-tuple is selecting some header files located in gas/config/tc*, gas/config/te*. Again, this seems arbitrary, as it is broad categories of systems.

            Sorry for the rambling :) I guess my questing can be stated as: Why is binutils not an all-in-one package?

            ...

            ANSWER

            Answered 2020-Mar-11 at 15:42

            Why is this target needed?

            Because there are (many) different target architectures. ARM assembler / code is different from PowerPC is different from x86 etc. In principle it would have been possible to design one tool for all targets, but that was not the approach taken at te time.

            Focus was mainly on speed / performance. The executables are small as of today's 'standards' but combining all > 40 architectures and all tools like as, ld, nm etc. would be / have been quite clunky.

            Moreover, not only are modern host machines much more powerful, that also applies to the compiler / assembled programs, sometime zillions of lines of (preprocessed) C++ to compile. This means the overall build times shifted much more in the direction of compilation that in the old days.

            Only different core families are usually switchable / selectable per options.

            Source https://stackoverflow.com/questions/60634229

            Community Discussions, Code Snippets contain sources that include Stack Exchange Network

            Vulnerabilities

            No vulnerabilities reported

            Install crosstool-ng

            These are the old Mercurial repositories. They are now read-only: http://crosstool-ng.org/hg/.

            Support

            For any new features, suggestions and bugs create an issue on GitHub. If you have any questions check and ask questions on community page Stack Overflow .
            Find more information at:

            Find, review, and download reusable Libraries, Code Snippets, Cloud APIs from over 650 million Knowledge Items

            Find more libraries

            Stay Updated

            Subscribe to our newsletter for trending solutions and developer bootcamps

            Agree to Sign up and Terms & Conditions

            Share this Page

            share link