sustrik / libdill

Structured concurrency in C
MIT License
1.68k stars 155 forks source link

Does libdill support linux x86 32bit? #74

Closed rb86 closed 7 years ago

rb86 commented 7 years ago

Hi Sustrik and Raedwulf! I try to run "Hello world" libdill's example on Linux 32bit (Ubuntu 14.04) and got error message: " Assert failed: !dill_slist_item_inlist(&cr->ready) (cr.c:412)", but it is fine on Ubuntu 14.04 64bit. So Libmill doesn't support linux 32bit yet, does't it? Thank you!

sustrik commented 7 years ago

It should work with x86, although, I thinks, we don't have the hardware to test on. Are you running the version for github of 1.0 release?

rb86 commented 7 years ago

Yes, I use the libdill v1.0 release. I just run OS (ubuntu 14.04 32bit) by Vmware in chip intel core i7, it's common hardware.

raedwulf commented 7 years ago

Does this also occur with 32-bit multilib?

raedwulf commented 7 years ago

Seems to work with multilib here... bizarre... I wonder if this is related to: #67

raedwulf commented 7 years ago

@rb86 also check HEAD version; it might be related to the fixed poll bug (because the build scripts didn't automatically define it).

rb86 commented 7 years ago

I use v1.0 release. I've pulled version newest version from git (eb6665005f4ec73fef83d01ed4da60c4d0fb24e9) and run again but it's still error. Here's output screen: Hello! World! Assert failed: !cr->ready.next (cr.c:401) Aborted (core dumped)

I dont understand your point about 32-bit multilib. I build libdill in 32-bit OS, not use multilib environment to build both 32-bit and 64-bit application.

raedwulf commented 7 years ago

I dont understand your point about 32-bit multilib. I build libdill in 32-bit OS, not use multilib environment to build both 32-bit and 64-bit application.

I was just eliminating possibilities; running 32-bit on 64-bit OS doesn't encounter the same problem (which is odd). With that knowledge we know that it's more likely to be OS-specific that library-specific.

rb86 commented 7 years ago

I'll test on other environment (Open-Suse, Fedora) and report to you :) You can reproduce this error by following steps:

  1. setup Ubuntu OS 32bit (12.04, 14.04)
  2. install package: apt-get install gcc g++ make automake autoconf
  3. build libdill:

    ./configure

    make

    sudo make install

  4. build hello example:

    gcc -c -o hello.o hello.c

    gcc -o hello hello.o -ldill

  5. Run ./hello
raedwulf commented 7 years ago

Have you tried the git HEAD version or 1.1?

rb86 commented 7 years ago

Hi raedwulf, libdill 1.2 is run well on linux 32 bit (Ubuntu 14.04) 👍 Thank you!