Giter Club home page Giter Club logo

Comments (22)

fwsGonzo avatar fwsGonzo commented on June 21, 2024

Not sure why you're getting that. The function exists in the latest version of the OS. Also, if you want pthreads I recommend using the latest master and not an old version of the OS.

Make the OS editable, then build services from that. It should work.

from includeos.

tweekley49 avatar tweekley49 commented on June 21, 2024

Still no luck. I pulled down the latest master and built it but none of the versions got updated. Maybe I am doing something wrong....not quite sure. Could it be issue that the program I am using is in C and not C++??
The error is still the same above so maybe I did not update it like I thought I did...

from includeos.

fwsGonzo avatar fwsGonzo commented on June 21, 2024

Hey, have you made the OS editable? If so, then you should try adding this to the conanfile.py in the root folder and then re-initializing the build folder completely:

            self.requires("musl/1.1.24@includeos/latest")

Just place it with the other dependencies, maybe between libcxx and libgcc, line 40.

Once you have built the OS with the new dependency, then you need to update the build folder for your service as well. It should build now, and you should have threads with parallellism. Hope this helps.

This is just a temporary solution until we have made a new release with threads support.

from includeos.

tweekley49 avatar tweekley49 commented on June 21, 2024

That did the trick. Now it is saying there is undefined reference to
syscall_SYS_clock_nanosleep in musl 1.1.24 :/

from includeos.

fwsGonzo avatar fwsGonzo commented on June 21, 2024

That's because the OS is not in editable mode, maybe. I don't really know how to perfectly get it working. Have you used conan editable ..?

from includeos.

tweekley49 avatar tweekley49 commented on June 21, 2024

I believe it is in editable mode. Following what you gave me, I was able to update musl from 1.1.18 to 1.1.24 and that is what it said it build with. I put it in editable mode following the steps in the wiki / built it after adding musl 1.1.24 as a dependency and have just left it in editable mode

Actually i think I see the issue...it is checking for the code in a /home/gonzo.....instead of my home directory

from includeos.

tweekley49 avatar tweekley49 commented on June 21, 2024

Here were my steps. I believe the issue is that musl 1.1.24 got "installed" somewhere completely random / doesn't exist.

inside IncludeOS dir I made a build folder, in /etc/layout.txt I didn't change anything since build_dir was already pointing to build. Then I did:
$ conan editable add . includeos/
$ (conan inspect -a version . | cut -d " " -f 2)@includeos/latest --layout=etc/layout.txt
Then I did conan editable list to verify and the output was good. Then I ran...
$ cd includeos
$ conan install -if build . -pr clang-6.0-linux-x86_64
$ conan build -bf build .

That was where I stopped...any mistakes in what I did?

from includeos.

fwsGonzo avatar fwsGonzo commented on June 21, 2024

I don't see you building the OS anywhere. Try this instead:

Go into the IncludeOS folder.

mkdir -p build
cd build
conan install .. -pr clang-6.0-linux-x86_64
source activate.sh
cmake ..
make -j4

That should build the OS itself, and it should be automatically picked up by any services you build now.

from includeos.

tweekley49 avatar tweekley49 commented on June 21, 2024

This seems to be the issue...
image

/home/gonzo isn't a thing on my pc, so I'm not quite sure it is checking there? What would make it look there when running
cmake --build .

from includeos.

fwsGonzo avatar fwsGonzo commented on June 21, 2024

It's not using your editable OS built from source. Try changing your editable from to version 9.9.9?
You can see what you currently use with conan editable list.

For comparison, here is what I have:

includeos/0.15.0@includeos/latest
    Path: /home/gonzo/github/includeos/IncludeOS
    Layout: /home/gonzo/github/includeos/IncludeOS/etc/layout.txt

Note that once you have done this you have to rerun conan in your services build folder:

mkdir -p build && cd build
conan install .. -pr clang-6.0-linux-x86_64
source activate.sh
cmake ..
make -j4

from includeos.

tweekley49 avatar tweekley49 commented on June 21, 2024

I must be changing the wrong thing...my 'conan editable list' is:
includeos/0.15.1-119@includeos/latest Path: /home/tyler/includeos Layout: /home/tyler/includeos/etc/layout.txt

I am still getting the same error?? I must not be setting the editable version correctly to be used?

from includeos.

fwsGonzo avatar fwsGonzo commented on June 21, 2024

It looks OK to me. I think you are just seeing paths from the PC that build the package originally, but it just looks to me like it's not picking up your editable OS built from source.

The editable list you posted looks OK. Have you initialized the build folder again after fixing the editable?

from includeos.

tweekley49 avatar tweekley49 commented on June 21, 2024

I have, but to make sure I am doing it correctly I am doing this...
I made the OS editable, did everything you said above, rebuild it with the commands above and then i try to apply it to my project I am trying to build so I:
cd back to home and do this....
'mkdir -p radix && cd radix' (then i paste my .c file in there with the CMakeLists.txt and conanfile.txt)
'mkdir -p build && cd build'
'conan install .. -pr clang-6.0-linux-x86_64'
'source activate'
'cmake ..'
'cmake --build .'
and this produces :
image

When I put in musl 1.1.24 in conanfile.py, it downloaded it, but i like it downloaded / mapped it somewhere that doesn't exist? is there a way to verify that? the src code file doesn't even exist in my path where musl 1.1.24 lives

from includeos.

fwsGonzo avatar fwsGonzo commented on June 21, 2024

Don't pay too much attention to musl here. It's working. You need to get the OS editable.

The thing about nanosleep is that it's implemented in the OS, so it can't be anything wrong with the musl package. It just confirms that it works. It also confirms that the OS is not being activated as an editable, and I don't know why.

So, what to try here? Have you tried editing the editable and increasing the version number? 9.9.9 would make your version higher than the package.

from includeos.

tweekley49 avatar tweekley49 commented on June 21, 2024

Modified the version to 9.9.9....running
conan editable list confirmed that but the error remains the same, sadly

For what it is worth as well, I cannot build the hello_world example using the editable OS

from includeos.

fwsGonzo avatar fwsGonzo commented on June 21, 2024

The problem is... me :) You need to checkout one of my branches. My bad. It's not master, master is old and irrelevant.

Do this:

git remote add gonzo [email protected]:fwsGonzo/IncludeOS.git
git fetch gonzo
git checkout -b simpler_clone gonzo/simpler_clone

Now, go into the build folder, build the OS, and then simply build your service.

Sorry for the confusion. I don't think about these things. I should warn you that SMP has some concurrency issues. I'm working on solving that, but I have no ETA.

This is my test service for threads with concurrency: https://github.com/fwsGonzo/smp_bench

Good luck

from includeos.

tweekley49 avatar tweekley49 commented on June 21, 2024

Running into an issue now where it is saying there is multiple declarations LOL
I am troubleshooting the issue now, but anything come to mind off the top of your head?

from includeos.

fwsGonzo avatar fwsGonzo commented on June 21, 2024

Can you post the errors you are getting?

from includeos.

tweekley49 avatar tweekley49 commented on June 21, 2024

image
I checked out your smp branch and then rebuilt the OS and rebuilt my service and I get that error

And in the event you are curious as to what I am building, I am building the Splash-2 benchmarks to demonstrate the speed enhancement IncludeOS provides :D

from includeos.

fwsGonzo avatar fwsGonzo commented on June 21, 2024

Did you try building musl manually with --build? It looks like it still has __clone which is not the right package.

You can build musl with conan install .. -pr clang-6.0-linux-x86_64 --build musl

from includeos.

tweekley49 avatar tweekley49 commented on June 21, 2024

Worked like a charm! Thank you for all your help during that! That was awesome stuff getting to plug and play until it was working. Again, thank you for all your help!!

from includeos.

fwsGonzo avatar fwsGonzo commented on June 21, 2024

No problem. If you want to use SMP (multiprocessing) then there's a work-around for it.
Go into src/musl/futex.cpp and change to this:

	while (*uaddr == val) asm("pause"); // __thread_yield();

It will make cooperative threads stop working, but it will make multi-processing stable.

from includeos.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.