Git Product home page Git Product logo

Comments (7)

donggyukim avatar donggyukim commented on August 18, 2024 1

I have a temporary solution for this, but not sure it'll meet your requirements:
https://github.com/firesim/riscv-fesvr/tree/windows

To handle addr_t, you can give -D__addr_t_defined to gcc.

from riscv-fesvr.

aswaterman avatar aswaterman commented on August 18, 2024

Supporting Cygwin hasn't been high on our priority list, but we'd of course be willing to review a compatibility patch.

from riscv-fesvr.

LGTMCU avatar LGTMCU commented on August 18, 2024

I will try to fixit. but infect, I am just run into linux programming world.
It seems easy to clean up type definition conflicting by given a more private name.
but while goes on, there comes another error which seems more confused to me:


../fesvr/syscall.cc: In member function โ€˜reg_t syscall_t::sys_openat(reg_t, reg_t, reg_t, reg_t, reg_t, reg_t, reg_t)โ€™:
../fesvr/syscall.cc:217:101: error: โ€˜openatโ€™ was not declared in this scope

(syscall(fds.lookup(fd), int(fd) == RISCV_AT_FDCWD ? do_chroot(name).c_str() : (name), VA_ARGS))

I have try to add "-I/usr/include" to compiler, where "fcntl.h" can be found.
But seems useless.
Can you help to give me some directions?

Thanks.

from riscv-fesvr.

madscientist42 avatar madscientist42 commented on August 18, 2024

To call this "annoying" is putting it mildly. While I'm a hardcore Linux person (I'm part of the crowd that started the whole "Embedded Linux" craze decades ago...) not everybody can USE nothing but it. "Not high on our priority list" for something that's this important and you can't do this on a Windows system save via VM? Current client has me stuck on Windows only for company security policy reasons (And NO, there will be no convincing them otherwise...) and a VM's weak on this class of machine they've got as a normal desktop.

I'll look into what needs to be done to fix this...sigh...

from riscv-fesvr.

soberl avatar soberl commented on August 18, 2024

for addr_t type, I made WAR like "typedef reg_t addr_t1; #define addr_t addr_t1" and revert including sequence in related .c files.
for missing lib functions like openat, I am not sure how to minimize the changes. Thinking.

from riscv-fesvr.

soberl avatar soberl commented on August 18, 2024

@donggyukim, yes, that's very helpful, thanks a lot.
I was hesitate whether to look for third-part files that support openat...And your change looks straightforward and quite good.
I google and don't find desscription for usage of "-D__addr_t_defined". I see in .ii file, it's something like:
typedef reg_t addr_t; addr_t xxx; typedef char * addr_t;
How gcc deal with -D__addr_t_defined in this case?

from riscv-fesvr.

aswaterman avatar aswaterman commented on August 18, 2024

I think the right way to solve this is to stop using the name addr_t in the global namespace. The __addr_t_defined workaround is brittle, as it assumes details of the Newlib header implementation.

We can probably fix this by moving it into the memif_t namespace. I'll look into it later.

from riscv-fesvr.

Related Issues (18)

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.