Thanks Brandon!

For those attending the workshop at HPCA, it would be great if you could
spend a few minutes and see if you can come up with some recommendations
around this.

Andreas

On 26/01/2017, 18:04, "gem5-dev on behalf of Potter, Brandon"
<gem5-dev-boun...@gem5.org on behalf of brandon.pot...@amd.com> wrote:

>Hello all,
>
>I'm trying to resolve this issue. I'm setting up FreeBSD 11 on a
>VirtualBox instance now to see if I can resolve the problems. Hopefully
>this covers OSX indirectly as well.
>
>I don't expect that moving the offending system calls into Linux specific
>files will resolve the problem where the underlying host OS needs to make
>the system call on behalf of the target (like what happens with
>fallocate). I think the only way to resolve the issue is to add in
>preprocessor directives to prevent compilation/linkage errors on
>platforms that don't support what's necessary under the covers. (Correct
>me if there's a better way to handle this.)
>
>I'll post a patch and respond to the mailing list when I have it working.
>
>Regards,
>Brandon
>
>-----Original Message-----
>From: gem5-dev [mailto:gem5-dev-boun...@gem5.org] On Behalf Of Andreas
>Hansson
>Sent: Thursday, January 26, 2017 2:18 AM
>To: gem5 Developer List <gem5-dev@gem5.org>
>Subject: Re: [gem5-dev] Compilation error for gem5 after statfs change
>
>Hi all,
>
>While I agree about the end goal (test every commit on every platform) I
>would suggest we go about this one step at a time. The likelihood of
>breakage is only high for anything related to syscall emulation, so it
>really only affects a small part of the developer community. Agreed?
>
>With that in mind I think we can prevent 99% of the issues if syscall
>emulation patches are built on a BSD system with clang. I would be wrong,
>but I would think this is a very good filter, with a fairly low cost and
>effort of deployment. Virtualbox + some flavour of BSD would do it.
>
>Andreas
>
>On 25/01/2017, 23:18, "gem5-dev on behalf of Jason Lowe-Power"
><gem5-dev-boun...@gem5.org on behalf of ja...@lowepower.com> wrote:
>
>>Yeah, it's a major problem that we say that we support macOS and others
>>when we allow commits that break builds on these other OSes.
>>
>>If we are going to say that we have support for OSes other than Linux,
>>we need to at least verify gem5 builds on these OSes, preferably before
>>accepting a commit. I'm currently testing out the free Travis-CI
>>service ( https://travis-ci.org/powerjg/gem5-ci-test). We could
>>probably hook this up to our gem5 github page, if it works out.
>>
>>Another important point, though, is that we can't expect all committers
>>to own multiple machines to test their changes on. We need something
>>that will do pre-commit builds on all the platforms we claim to
>>support.
>>
>>We're in the middle of moving the regression tests to a hosted jenkins
>>instance. Hopefully this will solve some of these issues (though I
>>don't think it will support multiple OS builds).
>>
>>Do others have any ideas on a long-term solution here?
>>
>>Cheers,
>>Jason
>>
>>On Tue, Jan 24, 2017 at 5:46 PM Bjoern A. Zeeb <
>>bzeeb-li...@lists.zabbadoz.net> wrote:
>>
>>On 24 Jan 2017, at 22:08, Jason Lowe-Power wrote:
>>
>>> Hi Brandon,
>>>
>>> I think this is a "real" bug:
>>>
>>http://qa.gem5.org//1905/compiling-problem-gem5-mac-os-10-11-6-scons-bu
>>ild
>>-arm-gem5-opt
>>.
>>> I think there are a few more places that need an #ifdef NO_STATFS.
>>> Could
>>> you look into it and post a patch if there's a problem? If not,
>>> please reply to the gem5 QA post and let them know.
>>
>>Can people try this one and probably get the #ifdefs right for NetBSD
>>as well?  There are at least 3 different checks for that code;  if
>>people don’t care about “style” I could get it right, but ..
>>
>>diff -r e47703369039 src/sim/syscall_emul.hh
>>--- a/src/sim/syscall_emul.hh   Fri Jan 20 14:12:58 2017 -0500
>>+++ b/src/sim/syscall_emul.hh   Tue Jan 24 23:45:04 2017 +0000
>>@@ -70,6 +70,8 @@
>>  #include <sys/stat.h>
>>  #if (NO_STATFS == 0)
>>  #include <sys/statfs.h>
>>+#else
>>+#include <sys/mount.h>
>>  #endif
>>  #include <sys/time.h>
>>  #include <sys/uio.h>
>>@@ -530,20 +532,25 @@
>>  {
>>      TypedBufferArg<typename OS::tgt_statfs> tgt(addr);
>>
>>+    tgt->f_type = TheISA::htog(host->f_type);
>>  #if defined(__OpenBSD__) || defined(__APPLE__) || defined(__FreeBSD__)
>>-    tgt->f_type = 0;
>>+    tgt->f_bsize = TheISA::htog(host->f_iosize);
>>  #else
>>-    tgt->f_type = TheISA::htog(host->f_type);
>>+    tgt->f_bsize = TheISA::htog(host->f_bsize);
>>  #endif
>>-    tgt->f_bsize = TheISA::htog(host->f_bsize);
>>      tgt->f_blocks = TheISA::htog(host->f_blocks);
>>      tgt->f_bfree = TheISA::htog(host->f_bfree);
>>      tgt->f_bavail = TheISA::htog(host->f_bavail);
>>      tgt->f_files = TheISA::htog(host->f_files);
>>      tgt->f_ffree = TheISA::htog(host->f_ffree);
>>      memcpy(&tgt->f_fsid, &host->f_fsid, sizeof(host->f_fsid));
>>+#if defined(__OpenBSD__) || defined(__APPLE__) || defined(__FreeBSD__)
>>+    tgt->f_namelen = TheISA::htog(host->f_namemax);
>>+    tgt->f_frsize = TheISA::htog(host->f_bsize); #else
>>      tgt->f_namelen = TheISA::htog(host->f_namelen);
>>      tgt->f_frsize = TheISA::htog(host->f_frsize);
>>+#endif
>>      memcpy(&tgt->f_spare, &host->f_spare, sizeof(host->f_spare));
>>
>>      tgt.copyOut(mem);
>>_______________________________________________
>>gem5-dev mailing list
>>gem5-dev@gem5.org
>>http://m5sim.org/mailman/listinfo/gem5-dev
>>_______________________________________________
>>gem5-dev mailing list
>>gem5-dev@gem5.org
>>http://m5sim.org/mailman/listinfo/gem5-dev
>
>IMPORTANT NOTICE: The contents of this email and any attachments are
>confidential and may also be privileged. If you are not the intended
>recipient, please notify the sender immediately and do not disclose the
>contents to any other person, use it for any purpose, or store or copy
>the information in any medium. Thank you.
>_______________________________________________
>gem5-dev mailing list
>gem5-dev@gem5.org
>http://m5sim.org/mailman/listinfo/gem5-dev
>_______________________________________________
>gem5-dev mailing list
>gem5-dev@gem5.org
>http://m5sim.org/mailman/listinfo/gem5-dev

IMPORTANT NOTICE: The contents of this email and any attachments are 
confidential and may also be privileged. If you are not the intended recipient, 
please notify the sender immediately and do not disclose the contents to any 
other person, use it for any purpose, or store or copy the information in any 
medium. Thank you.
_______________________________________________
gem5-dev mailing list
gem5-dev@gem5.org
http://m5sim.org/mailman/listinfo/gem5-dev

Reply via email to