Multiple definition discovered with espressif@6.5 but not with espressif@5.1.1

Hello
I discovered a strange difference buiding with espressif32@5.1.1 and espressif32@6.5.0

To explain the problem I made this small exemple.
platformio.ini

[env:mhetesp32minikit]
platform = espressif32  ;@5.1.1
board = mhetesp32minikit
framework = espidf

here are the various files:
test.h

int test_int;
void foo();

test.c

#include "test.h"
void foo() {}

main.c

#include "test.h"
void app_main()
{
foo();
}

main.c is in the src folder
test is in the lib folder

If I buid with @5.1.1 no error
With @6.5.0 I get the multiple definition error on test_int which I guess is normal
the variable should be declared in test.c or defined as an extern variable.

The question is why is there no error buiding with the @5.1.1 ??

I did not test all the intermediate version between these two to see where it starts.
may be a change in the compiler or the linker.

Thanks a lot