-
Notifications
You must be signed in to change notification settings - Fork 13.3k
Xtensa absolute filename too long #5100
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
The arduino IDE is building that name, based on your temp directory probably itself based on the windows variable |
File name is not associated with TEMP variable, and consists 208 chars in this case:
Why can't it be shorter like "esp8266_4e056916d9045c6bc547a3a7ce5e20ae.a" ? |
it seems to.
We don't control the arduino builder. After googling, it is advised to both change |
Is the issue the filename length or the length of path+filename? |
On windows the max of path+filename is 260 (by default, the max can be disabled in the registry), so @d-a-v is right: change temp to point elsewhere. |
is the windows standard setting for %temp% and it is dangerous to recommend changing it as it may have ill sideeffects. It is more likely to be cureable by using less "extra settings" with shorter names and values as long as Arduino IDE doesn't change the way of naming files (put extra settings in filename), |
In that case I suggest editing the registry to allow longer path+filename length, and test whether the Arduino IDE works with that. |
I am not sure how many applications will be able to handle filenames longer than the traditional maximum. I wouldn't be surprised if windows itself has problems because this "novelty" is not respected in every aspect. |
PATH edit is not a great solution, since the filename is the issue. Yes, windows can allocate 260 max chars absolute path, it's normally more than enough if reasonable filenames are selected. Filename itself is limited to 260 too, in my case it does not reach this limit yet, but if more options will be available it can exceed and this limit. Non elegant, more like hack setting Temporarily manually deleting .a file between compilation helps, but full recompile is done every time. |
I have an unrelated coming update of the board generator. I'll try to reduce the internal option names in it since windows use them as part of the library name (which is odd?). |
seeing this, it seems clear why ide rebuilds everything if only so little as the upload speed is changed. |
It is unclear to me why the arduino builder includes these option names with the windows version, and not with the linux version. The same file under linux is like |
I don't think it is about uniqueness - the random part at the end should suffice, rather about detecting changed build options? Why this wouldn't be necessary under unix - I don't know. Or maybe it is just an error in the Windows version? edit: just checked, it does the same with arduino board selected, so no real esp-core issue, but esp core is prone to file name length overflow because of the plethora of buildoptions. |
@5chufti does arduino-1.9 on windows have the same behavior ? |
Yes, 1.9 beta has exact behavior. |
As a workaround, I am trying to find nice short names for hidden strings in boards.txt, updating #5103. |
@Elektrik1 Can you try it ? |
ok, disabling the Aggressively cache compiled core removes the options from the filename and should alleviate Elektrik1's problem. Edit: as the "port" setting does not incur a rebuild, maybe we can get more "exceptions"? |
Not really. Truth is I've not followed the build system stuff closely since they moved it out of the Java codebase and made the Google Go language arduino-builder program. But I do believe these issues on Arduino's repositories are related: I might also suggest a short-term workaround to at least ease user suffering. Seems like many of the internal strings ESP8266 uses (in boards.txt) to define the menus are unnecessarily long. Simply shortening those names could bring a lot of short-term relief while waiting for the Arduino developers to improve the builder. EDIT: oh, I see that's exactly what #5100 does. Please feel free to ignore everything I've said! ;-) |
@PaulStoffregen Thanks for confirming that there is currently no other way than this short-term workaround. |
boards generator updates: * simplified mapping description: only flash and spiffs sizes are needed * some ldscripts are renamed due to autogenerated names * +2M/0, +2M/512K spiffs, +4M0 * reduce length of hidden strings in boards.txt (#5100, arduino/arduino-builder#284) * give more details in ldscripts (address, size, +rf-cal, +sdk-wifi-settings)
@Elektrik1 Please use latest git and report back whether the fix is enough for this issue |
I've been affected by this issue for two weeks. I have Arduino 1.8.6 installed from Windows Store and "Aggressively cache compiled core" is turned on. It seems that cc0bfa0 fixes this. |
I do confirm latest commit fixes it, log: Compiling core...
Thank you! |
@Elektrik1 thanks for reporting ! |
Now, 1.8.7 for Windows (or later) makes cached core |
Hi there,
First compile on Windows 10 Arduino IDE 1.8.6 works fine, but on recompile such error appears:
Compiling core...
File is present but it can't be opened. I think it's because of long file name (>255 chars), since I cannot open this path with any text editor:
Could file name be shortened ?
The text was updated successfully, but these errors were encountered: