[PATCH] apply the struct dirent penalty only when needed

Rolf Eike Beer eb at emlix.com
Fri Jul 8 00:11:29 AEST 2016


(resend, looks like I missed the confirmation mail on first attempt)

Hi,

attached is a patch that reduces the memory in use on all systems where 
BROKEN_ONE_BYTE_DIRENT_D_NAME is not defined.

It would be good if there was a ac_something variable that could be given to 
configure to tell it if this workaround is needed or not when cross compiling. 
We currently do it another way after running configure:

====
cat >>conftest.c <<EOF
#include <sys/types.h>
#include <dirent.h>
#include <assert.h>

int
main()
{
        struct dirent d;
        static_assert(sizeof(d.d_name) > sizeof(char), "struct to small");

        return 0;
}
EOF

${target_platform}-gcc ${optflags} conftest.c && \
        sed -ri 's/#define (BROKEN_ONE_BYTE_DIRENT_D_NAME) 1/#undef \1/' 
config.h
====

Of course that only works when one has a compiler that is new enough (what we 
can guarantee).

Greetings,

Eike
-- 
Rolf Eike Beer, emlix GmbH, http://www.emlix.com
Fon +49 551 30664-0, Fax +49 551 30664-11
Bertha-von-Suttner-Str. 9, 37085 Göttingen, Germany
Sitz der Gesellschaft: Göttingen, Amtsgericht Göttingen HR B 3160
Geschaeftsfuehrung: Heike Jordan, Dr. Uwe Kracke – Ust-IdNr.: DE 205 198 055

emlix – smart embedded open source
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-apply-the-struct-dirent-penalty-only-when-needed.patch
Type: text/x-patch
Size: 1383 bytes
Desc: not available
URL: <http://lists.mindrot.org/pipermail/openssh-unix-dev/attachments/20160707/e8109b18/attachment.bin>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 299 bytes
Desc: This is a digitally signed message part.
URL: <http://lists.mindrot.org/pipermail/openssh-unix-dev/attachments/20160707/e8109b18/attachment-0001.bin>


More information about the openssh-unix-dev mailing list