Error Compiling for Board Teensy 3.6 - McAfee Problem

Status
Not open for further replies.

randomvibe

Well-known member
The simplest Teensy 3.6 program that previously compiled using Arduino-1.8.5 and Teensyduino 1.40 (downloaded 2 weeks ago) on a Windows 10 64-bit system, no longer compiles. It takes nearly 30 seconds to reach the error below, and the Teensy Loader window never appears:

Code:
c:\programs\arduino-1.8.5\hardware\tools\arm\bin\../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/bin/ar.exe: unable to rename 'C:\Users\mc\AppData\Local\Temp\arduino_build_70759/core/core.a'; reason: File exists

Error compiling for board Teensy 3.6.

I exited the IDE completely, and tried running the Arduino IDE as an administrator, but no luck. I tried previous versions of the IDE, but no luck.

I temporarily turned off the McAfee LiveSafe real-time scanner, and this worked! Running the IDE with admin rights was not required.

Turning the real-time scanner back ON and adding C:\Programs\arduino-1.8.5\arduino.exe to the McAfee real-time scan exclusion list was not enough to solve the problem. This list must also include arduino_debug.exe and arduino-builder.exe.

Hopefully future versions of the IDE and/or Teensyduino will solve this problem.
 
I'd say that this is clearly a McAfee problem since it obviously blocks well known and approved standard software like the Arduino IDE and its tools. Thus, you should open a support ticket with them.

Besides of that, the antivirus developers know that they and theirs software aren't perfect. That's why mostly all antivirus programs allow to set up an exclusion list to handle particular cases and exceptions. No action from Arduino or Teensyduino side required.
 
Many people have encountered this problem with Arduino, even without Teensyduino. It's not just MacAfee. Seems the Windows world is filled with inefficient, poorly designed anti-malware software. There's nothing I can do about that in Teensyduino.
 
It is interesting, I have been running into this for awhile now and this was one case that I had not thought about McAfee... I thought maybe it was some strange interaction on my machine. Also it does not happen all of the time and I can usually clear it up by restarting Arduino. Sometimes I needed to go to my temporary folder %temp% and clear out all of the Arduino folders: arduino_* build* untitled*
 
For sound technical reasons, I once built a program for Windows which can be summarized as:

Code:
int main(void) { return 0; }

A month or three later I got a malware warning about it. I submitted it back as a false positive.
 
... it does not happen all of the time and I can usually clear it up by restarting Arduino. Sometimes I needed to go to my temporary folder %temp% and clear out all of the Arduino folders: arduino_* build* untitled*

This overall issue is getting worse. A few weeks ago, restarting the Arduino IDE did the trick. This week, that no longer worked.

As I said in my first thread, I had to add several *.exe files from "C:\Programs\arduino-1.8.5\" to the McAfee RTS exclusion list to make it work. Today, this no longer works.

I added a bunch of teensy*.exe files from "C:\Programs\arduino-1.8.5\hardware\tools", and no luck. I added dozens of other *.exe files from other folders with no luck.

In all unsuccessful cases, the IDE takes nearly a minute to error out while writing/deleting files named cc*.s in "C:\Users\mc\AppData\Local\Temp", and the Teensy Loader window never appears.

The only workaround is to momentarily turn off the McAfee Real-Time-Scanner (RTS), restart the Arduino IDE, start the compile process, then the Teensy Loader appears, and then it compiles successfully. While the IDE is up, I am able to turn ON the McAfee RTS, and subsequent compiles finish successfully and quickly. But once I quit the IDE, the error will resume unless I follow the aforementioned.
 
Last edited:
Best fix for McAfee is removal :) They probably extended their RTS to watch for Ransomeware writes going wild encrypting?

I use Windows Defender and Malwarebytes. Malware bytes ransomware protection slows compiles significantly doing that. This is a new machine and I haven't Before/After tested it to work telling it to exclude: Windows / System Properties / Environment Variables { path for } TMP
In your case that would be :: "C:\Users\mc\AppData\Local\Temp"

Will McAfee allow File or Directory to be excluded? The IDE deletes it's { arduino_build_919858, arduino_cache_323818 } work directories on exit and creates NEW #### for each sketch compiled.

This overall issue is getting worse. A few weeks ago, restarting the Arduino IDE did the trick. This week, that no longer worked.

...
 
Last edited:
On my day job as an IT manager in a French pharmaceutical group, I can confirm that such issues, related to the Windows OS and Windows software, are appearing more and more often, stealing not only the users' productivity and time, but also mine.

After more than 30 years of Microsoft experience, starting with MS-DOS 2.2 until Windows10, I strongly recommend using rather a computer running a well supported Linux distro or the BSD Unix based macOS, especially if you do software development on it. The long term cost (even if there are not so many free games) will be considerably lower if you take the lost time into account.

Inspired by an experiment which IBM did for their employees, I started deploying iMacs instead of Win PCs and MacBook Pros instead of the Win/(Dell or HP) notebooks in the company I work for. And I can confirm the results which IBM found, too: The Mac users make 90% less support requests. This, and for example the fact that a major macOS version update blocks the computer for a maximum of 30 minutes while a major Windows update can take several hours and will let run the PC with pulled handbrake during 2 or 3 days, the longer lifetime of the product makes the total cost of ownership (TCO) lower, even if the investment at the beginning is slightly higher.
 
Last edited:
After more than 30 years of Microsoft experience, starting with MS-DOS 2.2 until Windows10, I strongly recommend using rather a computer running a well supported Linux distro or the BSD Unix based macOS, especially if you do software development on it. The long term cost (even if there are not so many free games) will be considerably lower if you take the lost time into account.
While I hear you, I personally would rather not throw out the baby with the bathwater ;) I have and do run Linux on some secondary machines (Odroid, RPI, UP)... And my secondary development machine is a Mac (Was supposed to be my wife's portable, but she hated it). I would personally not like to have to go through the hassle of converting everything. So would be nice to find a slightly less drastic approach.

This overall issue is getting worse. A few weeks ago, restarting the Arduino IDE did the trick. This week, that no longer worked.

As I said in my first thread, I had to add several *.exe files from "C:\Programs\arduino-1.8.5\" to the McAfee RTS exclusion list to make it work. Today, this no longer works.

I added a bunch of teensy*.exe files from "C:\Programs\arduino-1.8.5\hardware\tools", and no luck. I added dozens of other *.exe files from other folders with no luck.

In all unsuccessful cases, the IDE takes nearly a minute to error out while writing/deleting files named cc*.s in "C:\Users\mc\AppData\Local\Temp", and the Teensy Loader window never appears.

The only workaround is to momentarily turn off the McAfee Real-Time-Scanner (RTS), restart the Arduino IDE, start the compile process, then the Teensy Loader appears, and then it compiles successfully. While the IDE is up, I am able to turn ON the McAfee RTS, and subsequent compiles finish successfully and quickly. But once I quit the IDE, the error will resume unless I follow the aforementioned.
I tried chatting yesterday with McAfee but had to bail after awhile.
As I mentioned I am getting this more and more often as well. Example right now...
Code:
...
"D:\arduino-1.8.5\hardware\teensy/../tools/arm/bin/arm-none-eabi-gcc-ar" rcs "C:\Users\kurte\AppData\Local\Temp\arduino_build_807572/core/core.a" "C:\Users\kurte\AppData\Local\Temp\arduino_build_807572\core\math_helper.c.o"
d:\arduino-1.8.5\hardware\tools\arm\bin\../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/bin/ar.exe: unable to rename 'C:\Users\kurte\AppData\Local\Temp\arduino_build_807572/core/core.a'; reason: File exists

Multiple libraries were found for "SPI.h"
 Used: C:\Users\kurte\Documents\Arduino\libraries\SPI
 Not used: D:\arduino-1.8.5\hardware\teensy\avr\libraries\SPI
Again when you mention exclude files from RTS... It was unclear to me if you are supposed to exclude the Apps that are running? Or are you supposed to exclude the data files that they are touching. Their help data is not terribly helpful.
Exclude an item you don't want McAfee to scan for threats. Then the next time you access it, McAfee doesn't check the item.

You might want to add a large file to your exclusion lists for Real-Time Scanning if you think the performance of your PC is affected during the scan. Remember, though, excluded items might contain threats that can seriously harm your device; McAfee does not recommend excluding items from your scans.

It is not necessary to add items in your network drive to your exclusion list. These items are always excluded from scans because scanning them might affect your PC's performance.

If you want McAfee to scan an excluded item, you can remove it from the exclusion list. That way, the next time you access the item, it is checked for threats.
I am wondering if it is about time to switch to different virus protection? Suggestions? @defragster - I already see yours.
 
Will McAfee allow File or Directory to be excluded? The IDE deletes it's { arduino_build_919858, arduino_cache_323818 } work directories on exit and creates NEW #### for each sketch compiled.

McAfee LiveSafe only allows files to be excluded from the RTS (real-time-scan). Not directories, sadly.

Last night I did a chat session with a McAfee representative, and I even granted him access to my computer. Luckily, he was able to replicate the compile error and observed that switching off the RTS fixed the problem. So this issue with Arduino is on record. Unfortunately, the rep. left it up to me to submit a "false positive" to McAfee. Who knows how long it'll take them to fix this, if ever.

I just updated my McAfee definitions (I do this every couple of days), and compiling Teensy 3.6 works, for now! I did not have to switch off the RTS. The first compile is slow, but subsequent compiles are fast as long as I don't exit the IDE.

When my McAfee annual license expires, I'll probably switch to Norton.

Is it possible to program the Teensy 3.6 on a Windows 10 PC without the Arduino IDE?
 
Glad it was shown&confirmed for what it was.

Look into the Parallel build update when it gets released - or the fixed version of IDE 1.9.0 in Beta at least (see 1.41b1 thread). Did a sample first compile of an Audio thing in 120 seconds with stock 1.8.5, and 40 seconds first build with the build tool update - all 8 cores looked topped out for a few seconds - versus one core slogging away. That was with Malwarebytes Ransom protection on but my drive excluded - which worked this time - before it had to be disabled to go fast.

RE: "Is it possible to program the Teensy 3.6 on a Windows 10 PC without the Arduino IDE? " - do you mean physically upload 'program' into the Teensy without the IDE - or without using the IDE as an editor/compiler interface? PJRC's stuff all conforms to and works with IDE - or other aftermarket things that build on/with it in the Arduino fashion of some sort - including a makefile. You can use an external editor of your choice with the IDE. There is a thing called STINO that was working in SublimeText to edit and build. As far as another tool to upload/Program the Teensy - there is TyCommander. There are threads on such things you might find given what you are looking to replace about it. The ones I mentioned by name I use or have used.
 
What do you have to put into your list now to make it work... Yesterday I was just doing the turning off RTS...

Note: This morning I added every file in the directory: D:\arduino-1.8.5\hardware\tools\arm\arm-none-eabi
Obviously this is specific to my location. But the compile went through... And I think somewhat faster than it was going before.
Wonder if there are additional files (Java folder?) that would help speed things up?

But what is triggering the failures... That is if running the c++ compiler, or ar or ... compile commands are the issue, than many of the alternative builds won't help. Example Stino, you typically point to your Arduino installs and it runs the same tools. Also true for many of the plug ins for Microsoft Visual Studio. Probably true as well for using Eclipse. Some users are using Platform IO to do builds. There are other options.

You have the option if using Make files. I have not tried this in a long time.

If I look up online for the "Best" antivirus, they ratings are all over the place. Note: I mostly use TyCommander to do the upload and comm windows, but that does not help here to actually get the build to complete.
 
Last edited:
But what is triggering the failures...

That's virtually impossible to determine because so many *.exe and *.dll files and scratch files and directories are involved.


What do you have to put into your list now to make it work...

I did all the arduino*.exe files, teensy*.exe, and some *avr*.exe files. But as I pointed out, even that stopped working a day later. After updating the definitions last night, it seems to work without turning off the RTS. This will likely change as the definitions change. Turning off the RTS momentarily is the workaround.

Wish I could add more files, but McAfee does not allow selecting multiple files. Selecting directories is not allowed either.

So my next anti-virus software MUST allow for directory selections.
 
Windows Defender - built in works well for me as noted. Only tool I pay for is Malwarebytes - and it allows and seems to respect 'folder' selection. Windows 10 latest is evolving to detect and prevent Ransomware and active attacks. I just saw a menu item for that - not sure when it appeared. Not sure when this will turn into a problem with having it protect you from 'yourself' - but it is there. Adding anti virus minimizes Windows efforts to DOUBLE protect and may disable some features.

ExploitProt.jpg

MSFT creates a safe space for files in their scheme it seems::
In Windows 10 Fall Creators Update, we released Windows Defender Exploit Guard, new set of intrusion prevention capabilities. One of its features, Controlled folder access, stops ransomware in its tracks by preventing unauthorized access to your important files. Controlled folder access locks down folders, allowing only authorized apps to access files. Unauthorized apps, including ransomware and other malicious executable files, DLLs, and scripts are denied access to folders.
 
Last edited:
This is probably too extreme, but you might consider using Linux. Even without factoring in the anti-virus troubles, Linux runs this stuff better than Windows.

Do Tell?

Indeed an extreme consideration - can see having more trouble with the install than anti-virus given personal history with Windows. And it runs so well on Windows - How does Linux run it better?

Is there a Wiki page with the needed steps to get a better running Linux box up running this stuff?
 
Hi @Paul and @defragster and other mainly Linux people - I am thinking of playing around and make my current Dev main dev machine be dual boot with Linux, like I had my earlier version.

Note: I find I prefer running under Windows as I am more familiar with it. For most things it probably does not matter much as there are Linux versions of most things I run, like Arduino, sublime text, Firefox.
I am familiar talking to linux boards using things like Putty (or KiTTY) and Winscp and VNC-Viewer, But I know there are other ways to do many/most of these things. I am foggy on how I was doing them before, but probably not hard to adapt. One of the harder things is I mostly use Outlook for Mail, Calendar and the like and have it talking with Itunes to keep my phone/tablet in sync...

Curious on what distribution to install for the least pain? My Up board has Ubuntu 16.04 (LTS) 64 bit. @defragster - LTS releases are their Long Term Supported versions, that come out every two years (This one came out in April of 2016). They will continue to support these versions for quite awhile. They usually have newer (non LTS) versions every 6 months, and support for these versions more or less ends when the next one comes out. Current version is 17.10 (released this October).

But a few years ago I liked using Linux MINT. Looks like they just released a new version of this recently. @defragster - Mint is more or less based on Ubuntu. Earlier I ended up going back to Ubuntu as some systems are tied to specific versions of Ubuntu (example ROS), which you could make work, but it took adding stuff to trick it to say that you were actually running Ubuntu of some version... Maybe that is better now.

The one thing I wonder about my current machine is how difficult it would be to setup the dual install. as it has Two disks.
A smaller 256GB SSD (C:) and an 2TB hard disk (D:).

C: is pretty much full, but I have lots and lots of space on D:

Ubuntu at least used to have a pretty good installer that could setup the dual boot. I guess the question to myself is do I trust it in this case? and/or should probably do some form of data backup first.
 
Based on the following - keeping it working on Windows - picking the right Antivirus and evolving quirks - seems trivial. Still wondering how "Linux runs this stuff better than Windows"? I have spare machines sitting - or add another 16GB RAM and a VM?

Interesting notes Kurt - Linux is a Hydra?
Top 10 Most Popular Linux Distributions Of 2017
So, today we are going to know the most popular GNU / Linux distributions in 2016. So, let’s get started:-
01 – Mint, 02 – Debian, 03 – Ubuntu, 04- openSUSE, 05 – Manjaro
06 – elementary OS, 07 – Fedora, 08 – ZorinOS, 09 – CentOS, 10 – Manjaro

So you get to pick the version to live with - then do that (re)Learning curve thing.

I had a page up on Dual Booting - sounded safe, but seem to have closed it before nabbing the link. In your case I'd suggest buying a double sized SSD - Cloning it to that ( using your 256GB as fallback/backup ) then using the new found space to do a Dual boot. Windows has changed the boot code process - ideally a competent dual booter exists.

For a VM version - found these quick links:
How To Install Ubuntu Linux On Windows 10 In 24 Steps

How to create a Linux virtual machine on Windows 10 using Hyper-V

Of course the Linux folks have a built in system on Windows 10 now. I tried it a year ago - Still intended to give BASH support only:
>> WSL is a tool aimed at enabling users who need them to run Bash and core Linux command-line tools on Windows.
WSL does not aim to support GUI desktops or applications (e.g. Gnome, KDE, etc.)

> Fall Creators Update and later: Install from the Windows Store
Open the Windows Store and choose your favorite Linux distribution: Ubuntu or OpenSUSE
> Ubuntu on Windows does not support the X11 window system, which is needed for graphical applications in Linux. People have managed to use Xming to get things to work
>> Kurt - need to swap to a BIGGER SSD C: >> The Windows Subsystem for Linux only runs on your system drive (usually this is your C: drive). Make sure that new apps are stored on your system drive.
 
This is probably too extreme, but you might consider using Linux. Even without factoring in the anti-virus troubles, Linux runs this stuff better than Windows.

My Windows 10 PC has CAD software, business software, MS Office, Matlab, Oculus Rift, etc., most of which would not run on Linux and I'd need new licenses for others. For me, switching anti-virus software is much easier than migrating to Linux.

The Norton Antivirus does allow the user to select a directory for RTS exclusion. So it's worth a shot.

I'd consider buying a cheap laptop with Linux, but my projects involve Serial communication with Matlab, so I need it all in one PC. I'm stuck with Windows 10 for now.

In the meantime, Teensy is compiling fine on McAfee LiveSafe. The first compile takes about a minute, subsequents are fast. If it fails from the get-go, just turn off the RTS for the first compile, keep the Arduino IDE open, then turn ON the RTS for subsequent compiles.
 
As I mentioned, I am probably going to do a combination of things. Above I did not mention there are several other things I do from time to time, like run Diptrace which does not have a Linux version, although doing a search I do see some people have had some success running it with wine (windows emulator stuff).

1) probably dump McAfee... Not sure if I will go with Defender or ... Need to see I may still have Norton license on other computer.... I think it's license finally expired and I killed the automatic renewal...

2) Setup for Dual boot. Not really the solution, but for those days I get frustrated with McAfee or the like and or when I get back to understanding ROS.

@defragster - Most Linux setups I have played with, have stuff in their install programs that install some version of dual booting and preserve windows. You do need to be careful to make sure you choose the right options. Like install to run along side of windows (or other linux install...). Then when you boot, it typically will show a text menu with a timeout, where you can choose which one to boot. After you install it will probably default to the Linux install. You can change the default back to windows, or there usually is an option to say reboot to the system I last booted to...
 
...
@defragster - Most Linux setups I have played with, have stuff in their install programs that install some version of dual booting and preserve windows. You do need to be careful to make sure you choose the right options. Like install to run along side of windows (or other linux install...). Then when you boot, it typically will show a text menu with a timeout, where you can choose which one to boot. After you install it will probably default to the Linux install. You can change the default back to windows, or there usually is an option to say reboot to the system I last booted to...

Indeed that is what I was saying ... 'need to be careful' ... "Windows has changed the boot code process - ideally a competent dual booter exists." ... as what did work as it did may need to have been updated to handle the new disk types or entry into Windows boot - especially if locked down through BIOS boot restriction.

<edit>: post #5,000 - where do the bits go ?????
 
Yes - looks like the process changed some to install the Dual boot on Windows 10 versus last time I did it with Windows 7... Note I later updated that machine to Windows 10 and I believe it still worked...

But back to this. I am thinking of doing Step 1) and Dump McAfee... Still deciding which one to use in it's place. I may go back to Norton (was on some older machines), but obviously there is defender and have not heard anyone much mention PC Pitstop...

FYI - I looked up on the McAfee forum and there was a posting in German from August:
https://community.mcafee.com/message/460205#460205 and no resolution: Using Google translate the message was:
allo,

When I compile a sketch under ARDUINO it takes an unbearably long time until the process comes to a close.

But if I deactivate the McAfee real-time scan, the compilation runs smoothly.

My question is, is there a better solution than always having to disable the real-time scan?

greeting

dlw
And no resolution to it. There were suggestions to add files like was mentioned above, and they tried and it did not help...

So my gut tells me that McAfee will not fix this anytime soon... Maybe I should rattle their chain before I switch.
 
The whole prevent write/rewrite issue is to stop the worst case news headlines ransomeware: techrepublic.com/article/the-top-10-worst-ransomware-attacks-of-2017-so-far/

Most if not all of those require a user to be phished into opening a compromised file, but they have to go overboard to stop the threat of the day - even if nobody should ever be exposed to it. But I well know people click things they should not - one of my rocket scientist neighbors was a very slow learner - he answered a phone call and then invited that person onto his computer. These folks usually wake up when they are asked for money then cancel the remote session. My wife and I got no less than 6 similar calls regarding our Apple iCloud devices they needed to fix this past weekend. They are very belligerent - and somehow that works for folks to be compromised.

No AV is perfect - the harder they try the more intrusive they get. And with safe computer use - and updates for those things that can be triggered through exposed system vulnerabilities - they are not worth paying for. That's why for Windows I opt for the built in Defender and have 10+ years experience knowing Malwarebytes can find and clean most anything and restore the system to running after the user invites it in, and it's efforts to exclude stuff are generally low overhead - except disabling or having to specify in this case the Arduino temp Build dirs - which is easier than McAfee presents.

The MSFT Win 10 latest release solution of marking areas protected from writes except by approved apps seems good and way less overhead. Some of the advanced parts may be PRO and not HOME versions.

The worst thing for (semi smart) Windows users - going to look for Drivers and the like - so many scams of DriverUpdater things and they regularly run on ADs on legitimate sites and come up first on any web search. That and loading any web app that presents itself. Not doing these unsafe things if the best plan - and clicking anything generally circumvents what ever protection is installed because it was approved.
 
Image1.jpg

Dear Paul,

MIDI controls are no longer recognized with ARDUINO 1.8.5 and TEENSYDUINO 1.40
Of course, the same program is running under 1.6.7 and TEENSYDUINO 1.27
(Attached the error in the picture)
Thanks for your help !

PROGRAM
#include <MIDI.h>
void setup()
{
// put your setup code here, to run once:
MIDI.begin(MIDI_CHANNEL_OMNI);
}

void loop()
{
// put your main code here, to run repeatedly:

}
 
The MIDI library was updated to version 4.3. Older Teensyduino had MIDI 3.2.

For version 4, you need to add "MIDI_CREATE_INSTANCE". It looks like this:

Code:
#include <MIDI.h>

MIDI_CREATE_INSTANCE(HardwareSerial, Serial1, MIDI);

void setup() {
  MIDI.begin(MIDI_CHANNEL_OMNI);
}

void loop()
{
}

While this does add an extra step which was not required in version 3.2, the two big advantages are the ability to easily use the other serial ports, and the ability to create more than 1 instance to use more ports at the same time.
 
Status
Not open for further replies.
Back
Top